While doxygen does indeed perform the translation and could be considered a compiler, it isn’t clear that its needs are the same as a compiler. For example, compilers often need access to headers in /usr/include from the host that are not available in the snap’s runtime environment (since /usr/include comes from the base snap, not the host).
In the case of doxygen, it seems that it would not only be possible, but desirable for it to ship its own bibtex, texlive-base, python modules, graphviz, plantuml and anything else it needs to function. In addition to not requiring classic, this will make your snap much more robust and verifiable since you don’t have to worry about existence/versions of the tools doxygen needs.
You seem to have considered this since you later state in your rationale for classic that you want classic to avoid a larger snap size. This is not a supported use case for classic in part because the philosophy of snaps is to have them ship everything they need so that they may run everywhere. Due note that while the snap size will be larger, snaps are compressed and therefore will have a smaller on disk footprint. While the initial download size will be the full (compressed) snap, subsequent downloads are delivered as smaller snap deltas.