1. I think you mean the "glibc" resolver, not the "glib" resolver (I do not believe that GLib contains a resolver).
2. systemd-resolved does not use glibc's resolver.
It is true that systemd-resolved does not understand root queries, and it is unfortunate that the systemd maintainers seem to be unwilling to add support https://github.com/systemd/systemd/issues/5897 . However, this has nothing to do with it using glibc's resolver.
However, as clearly documented in the systemd-resolved(8) man-page: There are 4 supported modes of operation with regard to /etc/resolv.conf, which each have different trade-offs, and are configured by changing /etc/resolve.conf itself:
(1) symlink to /run/systemd/resolve/stub-resolv.conf
(2) symlink to /usr/lib/systemd/resolv.conf
(3) symlink to /run/systemd/resolve/resolv.conf
(4) regular file
`dig +trace` should work properly in modes (3) and (4).
The big difference between those modes is "how do you want programs that don't use the system APIs (and instead do DNS themselves) to behave?". Modes (1) and (2) say "have them send their traffic through systemd-resolved", which as you note has some deficiencies; modes (3) and (4) mean "allow them to talk to the remote DNS servers directly".