There is a discussion about that here: Union splitting vs C++ - #13 by ChenNingCong
(see some previous posts).
I don’t know if there are specific proposals on how that can be improved, but there seem to be inherent limitations relative to the approach taken in static languages.