> it is more common for packages to be distributed in binary form rather than as sources, so you don't run into problems compiling dependencies
Not sure what you mean here. Java bytecode is similar to source code, just easier for machines to parse, also easy to decompile. Mainstream Java is an interpreted language (requires JVM), not compiled.
Don't see what's the difference with packaging, say, python code to a zip archive.