I think there should be only one dll and you get it through the jk patcher. We don't need to have any number of dlls floating around, and we shouldn't let people link to random dlls as a part of a mod either (we are talking about native code here, these aren't scripts running in a sandbox, in addition to avoiding countless implementations of the same functions). The one dll will contain all functions, and if something else is needed, it will just get added. Backwards compatibility will just have to be done like it is in any other library (and there is no issue here, you run jk patcher to play extended jk, and it automatically updates the dll, so you never run into a problem). I don't think someone who doesn't have the dll should be able to play someone who does...it's just tough love I guess but these people need to GET THE DLL and they don't deserve to be coddled for any particular reason. It's just to the complete detriment of everyone BUT the people who refuse to get the dll, and if you don't know about the dll, then you'll find out pretty quick and get with the times. If for some reason someone is missing all their appendages and they can't convince someone else to get the dll for them, then perhaps whoever they are playing could opt to run the old jk.exe without the dll...problem solved on every front here.
Also, if someone's mod needs some huge code library to run, perhaps something like a large pathing engine, then this could be included in the normal jk patcher download bundle, but as a separate (and linked) dll. Or, it could just be built into the main dll...either way would work fine, but let's avoid custom dlls for mods at all costs here...if it is absolutely necessary then just include it as an optional download through jk patcher that is mod specific, but I want to avoid per-mod dlls, especially ones bundled with the mod download. Jk patcher should handle all dll updates.