To deeply explore the problem of too high memory usage, I used a short scenario between Collegno and Torino Porta Nuova, so that I quickly tested variations.
The tests had the target to compare:
A) Initial situation
B) Track and terrain only
C) Like B + lofts and roads
D) Like B + Scenery
This diagram has highlighted three clear points that have allowed to drive the optimizations more directly.
1) From curve B, memory grows proportionally even with track only scenario, and grows together with the increasing complexity of the tracks themselves; so tracks have a problem.
2) From curve D, the last tile has a huge density of scenery objects (understandable as it is the Porta Nuova station and partly the Lingotto but this must be improved)
3) From curve C, lofts and roads are not critical points.
The next and final step is to understand what is the issue in the tracks and how to reduce the scenario in the final area.