I use 4 benchmarks, 4 ports to track code size (https://sourceforge.net/p/sdcc/code/HEAD/tree/trunk/sdcc-extra/historygraphs/), with these improvements, most of the combinations are back near 4.4.0 levels, many are even substantially better. However, there are two exceptions: Whetstone and Dhrystone compiled for stm8. I still need to look into those to see what could be done there.
The linker needs to choose the correct standard library (i.e. in your case the one compiled with --stack-auto --model-large). If your linking command is "sdcc", AFAIK one way to do that (adn the most common one) is to supply --stack-auto --model-large as command line arguments when linking (another one would be to use --nostdlib, and supply -L arguments that point to the location of the correct standard library). If you link by calling "sdld" with a linker script, the paths in the linker script need...
Code size regression due to recent type bugfix
The improvements for handling nested struct/union/array types are in [r15012].
Code size regression due to recent type bugfix
Improve handling of nested struct/union/array, part of RFE #937.
Our linker is a fork of the one from asxxxx. There is a bit, but noch much documentation about the map file at the asxxxx website.
You showed the command lines you use to compile. Which command lines do you use to link?