When talking about reducing TOS in ROM code size, I can say many things about. Here are some things described: http://atari.8bitchi.../stTOShist.html
When reassembling TOS 1.04 completely unchanged you can get some 7 KB shorter code only by using simple optimizations in Devpac - short absolute addressing + movea.w instead movea.l - when possible.
That self would be enough to make it fit in 192 KB without using Line-F trick (what save about 7 KB by my calculations. But there is much better thing: 2 RSCs (Desktop and AES) and Desktop.inf template at ROM end are just copied straight in RAM, and all further access is in RAM - sure, because some values, txt changes in them. Funny thing is that no one came to idea to use packing there (1989 !) - with even low efficient one it would save about 8 KB . This stays for 1.04 and 1.06/162 - which are practically same. And I guess for older versions too. Things are little better in 2.06 - no packing, but static parts stay in ROM.
So, in case of 1.04 it was possible to save about 15 KB TOS ROM space with simple measures, and that's some 8% of whole size. Really good compiler could save even more, I guess. We could even have answer on this question if compiling what is available with something better - TOS 2.06 sources. But it will need some time to make that mess usable with other toolchain than what Otto used.
Of course, I have feeling again that I will be who need to do all it