This is not true. Mathematica has the concept of contexts. You can have each notebook have it's own unique context. Mathematica Packages create their own context too, we are not talking about module's here which are useful for local variable scoping. Packages and contexts lead to the isolation you are looking for. These are things that have been around since the initial Mathematica 1.0 in 1988 (!).
https://reference.wolfram.com/language/ref/Context.htmlSame about your criticism of error handling and control flow: https://reference.wolfram.com/language/guide/RobustnessAndEr...