I'll take a crack at this:
Display.getAvailableDisplayModes() seems to return only the modes which are defined in some config file (sorry to be vague, apart from the usual grepping and stuff I don't know anything about linux).
Is this a linux limitation or an lwjgl characteristic?
This is a characteristic of XFree86. It's a rather primitive X Server that's grown up into a very complex piece of code. For now, autodetection trys to list all supported modes during configuration. Hopefully the X Server will just plain get smarter in future revisions. (I'm not holding my breath.)
I'm still unclear about the 2 linux implementations of lwjgl. There's a red hat one and a suse one. What about other linux implementations? Will that simply not work or do they need either of the 2 native libs?
Actually it has nothing to do with RedHat vs. Suse and everything to do with the GLib version. I don't remember who uses what, but cutting edge Linuxes (Mandrake 9.1, RedHat 8&9, etc.) should use the RedHat download while more stable ones (Suse, Debian, etc.) should use the Suse download. The situation here is kind of like VBRun4 vs. VBRun5. Machines can always upgrade to the latest version of GLib and use the RedHat download.
Is there a way to tell the different linux flavours apart in a JWS jnlp file? The <nativelib> element has an 'os' and an 'arch' attribute, and os="Linux" seems to work for RH. I suppose 'arch' is something like 'x86' on PC's?
I'll punt on this one. Different systems have different files/utilities that can be used to determine the exact OS. As for what they are, I'm afraid I don't remember...