I'm sure it's possible, but it would need some pretty powerful
global expression analysis.
Ie, if data initialised in static this() is only touched in one
function
lets say, and that function is never referenced, then it should
surely be
able to safely eliminate that function and associated data?
You need LTO for that.
Why would it pull the whole module if only one function is used?
http://elinux.org/Function_sections
And why can't a post-link strip process clean it up?
Everything's already merged by then.