In a post on the Steam board, the developer says that most of the framerate problems are caused by the developers trying to be clever with an engine that is no longer built for clever developers. All the levels are built out of modular components, but UE3 is normally used for environments built of large individual models and stuff, so loading all the individual components with something called "drawcalls" is just too much for UE3's tight little anus, even though it's just the commands that bring it to its knees. It sounds almost too stupid to be true, but who knows!!!
Uh, what? Need this explained, maybe, but I assume what they're saying is that they use a lot of individual static mesh components in their levels... but looking at the game's graphics, there's nothing out of the ordinary. I've made a few levels in Unreal before that were detailed enough, and I didn't have any performance problems whatsoever. Go back and play Unreal Tournament 3, which still looks great, and you will see levels are made up of tons of various static meshes too, plus a decent dose of CSG for walls and floors.
So my guess is that they simply didn't include any culling volumes, meaning the engine is rendering everything in the level even if you can't see most of it. In that case they simply need to define culling volumes in their various areas so that if you're in a room, the game isn't rendering anything you can't see outside of it.
Unless I'm misunderstanding the problem of course, but I've never heard of this issue at all specifically with Unreal.
EDIT: Found the original developer post.
If I'm reading this right it means that they are using, say, 10 meshes for a wall instead of 1. That isn't clever. That's stupid. In an engine like Unreal (and most other modern game engines) it's far more useful and performance-friendly to simply have 1 mesh for a wall, barrel, etc. and use CSG for any flat plane (like a solid floor). A smart developer would have simply created a wall mesh and then used decals and other detail objects placed on that wall to hide the fact that it's the same wall used over and over. Unreal also allows you to scale objects along all axes, flip them, rotate them, etc., so you can use the same mesh in many places where you couldn't normally (i.e. if you have a wall that's 10 feet, you can scale it down to 5 feet or up to 15 feet).
This isn't an "Unreal thing". This is something that virtually every modern 3D engine will have trouble with.
In other words, developers either were not aware of the technical limitations of their engine when they built their game, or they (more likely) ignored them. Instead of picking an engine that let them do what they wanted or modifying it, they just forged on ahead knowing that there would be major performance problems.