But the ability to spawn processes, get at files, etc. is handy. Higher level interfaces are sometimes better, but sometimes not. But Ada95, python, and some others give the right feel. Separation of interfaces from modules is handy, and noteably lacking from Python and Java. But it's evidently not critical.
Exceptions Counting on folks to check return codes is madness.
Languages like lisp, scheme, python, Java, etc. Modula-3 supports both kinds of modules. Much harder question, as it involves security policies. This is critical to mobile code systems. An Introduction to Safety and Security in Telescript gives an excellent discussion of run-time safety and system safety.