I agree, normally I would spend time on optimizing models as much as possible. However, I don’t have a lot of spare time on my hands to optimize everything by hand. I want to spend my time as efficiently as possible. I’m aware that there is a lot of unnecessary geometry.
For large walls and interiors (like buildings, or space stations) I would build a small modular piece of wall out of bricks, then I manually optimize everything, or indeed use a normal map. That’s fine in this case, but some models are large and complex with bricks placed in such positions that it would require a lot of tedious work to optimize it and to check that all holes are closed. Regarding lightmapping, I also planned to use fully dynamic lighting, possibly with distance fields to bypass the triangle count using a replacement mesh. If it was feasible to import each brick separately and copy the bricks to build a model in the engine directly, I could create UVs for lightmaps and give each brick a low lightmap resolution. But yes, the triangle count is the main issue here. Making a script also takes a lot of time, obviously, but I don’t even know where to start. I planned to create a script to assemble a model automatically based on the LDraw/LDD file anyway, but that will already take a lot of time.
I don’t know how TT Games are doing it, but the bricks they have are all normal mapped to fake the round corners and use a baked AO map to fake the underside/interior. The problem for me is that it would again take a lot of time as I would have to unwrap every single brick, and I end up with dozens of textures. I could create an atlas out of it and such, but that would be more of a puzzle to get right.
Don’t get me wrong about the “too much work/time”. I just want to spend my time as efficiently as possible, so I try stuff out to see how far I can go with optimizing/baking, in as little time as possible.