Except from potential name clashes -- which can be got around by other means -- is there any benefit to importing only the parts from a module that you need:
No, it's only for the purpose of preventing name clashes. The other mechanism for preventing name clashes - namely import qualified
- results in more verbose (less readable) code.
It wouldn't make the binary smaller - consider that functions in a given module all reference each other, usually, so they need to be compiled together.