I remember looking into this once as well (the idea was for a mission that could contain multiple "missions" like a campaign inside one DLL, and so you would want to change the description depending on which missions the player had completed.
You are right in that OP2 does not actually load the DLLs to read the mission name (i.e. LoadLibrary or similar operating system function call). If I remember correctly it actually parses the structure of the PE file (i.e. reads the data directory, locates the export table and then dereferences the pointers to the various things like the LevelName). I assume it does this for performance purposes (loading and unloading 30+ DLLs would take a long time just to read their names, since loading by the operating system is a more involved process than just "memory map the file").
Really the only way you could go about accomplishing this would be to modify the DLL file yourself before the game reads it. Or patch the game to actually load the DLL completely and look up the exported address (which might have performance implications, but maybe not on a reasonably modern machine).