I fixed all those issues you described with flat shading by rebuilding edge splitted meshes to meshes optimized for flat shading with correct normals etc. using some digital awesome.

Because the problem is if I keep the edge splitted models that work in all shade modes my vertex count is way to high.
Using the method above I loose about 66% of all vertexes, which is quite a lot.


Formally known as Omega
Avatar randomness by Quadraxas & Blade
http://omegapuppeteer.mybrute.com