Optimization is very much an art form between what you want to put into your environment projects as compared to what you can afford as to dependencies bound to the asset by association. Issues relating to pure polygon requirements as to maintaining a playable performance envelope seems to have been solved and limitations seems to relate more towards how much video memory and texture streaming budgets is required as far as material complexity, texture resolutions, as well as number of draw calls as applied to a surface.
For example a test into the millions as to surface count.
And of course with engine updates you can run a profiler on your environment to see in what areas are you spending to much resources that is impacting performance.
A way to think of counts as to performance is to look at costs as in 1K = $1 so running the profiler you can use that as a base to decided do you really need to be spending $50,000 bucks on on an asset that you could get away with spending $50. A 50k mesh for example has less cost than a 10k model with 10 gigs worth of material shaders and textures.
Character development though represents many different problems as to practical use, more so if you want to add a physics to the hair, so the dependence of a stock CPU bound physics solution built into UE4 will have an noticeable impact on frame rates but if using a hardware solution, Nivida physx, the performance hit should be much lower and work well with in a controlled environment.
Other things need to be taken into consideration to determine if you could afford the cost based on the total environment loading once you have more than a few clients connecting and there is no way to tell until tested but the trick with UE4 is to future proof the development of working assets by building into the asset the ability to scale up or down as needed based on the desired output.
Hair is a good example, as there is a thin line between good and bad looking hair, but by using character BP’s hair for a given character can be developed on a different channel with out committing to budgets or hard counts that should be determined under proper engine loading and profiling.