That uses the zlib compression format is older and more widely supported. Also the most likely consumer of the debuginfo for rustc itself is the backtrace generation code of libstd which supports zlib compression. We don't ship all debuginfo necessary for a usable debugger experience anyway. We only ship line tables and not the debuginfo necessary to show local variables.
We are still using the system linker by default. Rust-lld is basically only used for webassembly and some embedded targets by default right now.