The rust resvg [1] project uses micro SVG (usvg) [2] as an interim normalization format that simplifies SVG into solely:
* Simplified paths (no shapes, only one kind of object)
* DTDs, Attributes, CSS and references are pre-resolved
* Invisible elements and comments are removed
Resolving shared items may cause sizes to increase drastically however. This is the sort of explosion that compression is perfect at compressing.
1: https://docs.rs/resvg/latest/resvg/ 2: https://docs.rs/usvg/latest/usvg/