[ol][li]When you have the time to actually compile the display list (e.g. startup; i.e. not when rendering),When you don’t need to change the batch data,When you don’t care about the memory consumed by the display list,When you want the absolute fastest draw performance possible (even faster than VBOs, sometimes much faster – true on NVidia at least)When you’re happy to ignore the ARB’s deprecation of display lists and use compatibility profiles (NVidia has already said this stuff isn’t going away, and I’ve not yet seen the vendor whitepapers on How to Cook VBOs That’ll Consistently Beat Display Lists, so I’m not gonna stop using display lists).[/ol][/li]As to the specific “break even” points with specific CPUs, GPUs, drivers, vertex attribute formats, interleavings, primitive types, etcetcetc. you’ll just have to test on the configurations you care about. I’d think it’d be a waste to compile a single 2-vert line into a display list (partly because if you’re doing that you obviously don’t care about its perf), but just test and see!
Note that above I’m speaking specifically of geometry-only display lists (just batches and batch setup binds). I don’t mix general state changes in with display lists.