Performance for ASE’s can be measured in two ways, rendering performance and collision performance.
If the engine is rendering two exact same objects, one an ASE and another built with brushes, the two objects will have the exact same amount of polygons and both objects are compiled into the BSP. Both objects will have backface cull, and both will be affected by the vis/portals. So rendering performance is the same.
Collision performance is a different matter. While rendering objects occur in the GPU, collision is determined by the CPU. The more collison surfaces, the more work for your CPU. By default, all visible faces of brush based geometry are also calculated for collision. By default, ASE models are not (you can walk through a normal ASE model) so what we usually do is manually add clip brushes overlapping the ASE for collision. Typically, these clip brushes are simple, axial blocks - resulting in simple collision data. So if this is the method used, collision performance is better with ASE’s.
You can use the autoclip feature for ASE’s (spawnflags 2) where ‘magical’ clip brushes are automatically placed for every renderable surface of the model. This however can often be a larger performance hit, particularily with ASE’s with lots of non-axial surfaces. You can however set different parts of the model for collision or not since surfaceparm’s take precidence over the autoclip feature, thereby simplifying the collision data on small detailed parts of your model.
What you can also do is add ‘surfaceparm nonsolid’ to all your model’s drawing shaders and then create additional simplified colliding but non-drawing shader surfaces to simplify collision while keeping a tighter fit to the rotated models. Think of this as building your simplified clip brushes directly into the ASE’s instead of using brushes. This may be easier since you’re rotating your models.