1) The preference for words over symbols. Basically every popular language has curly brackets except Python (the worst syntax IMO).
Well, at least we agree about Python's syntax :-)
2) You can't declare complex types in parameter lists. In other languages the parameter lists can be horrible to read because the language lets programmers be lazy and not write type names.
That would be pointless, since the declaration would be local to the procedure and the type would be distinct from anything defined elsewhere.
3) The module system with uses and neatly defined interface/implementation section. I still prefer this over other languages even though it has downsides of duplicate function definitions.
I prefer the Modula-2 style with separate definition and implementation files, which apart from anything else avoids the legal problem of the declaration being in the public domain (as a statement of fact) but the implementation being proprietary. The Google/Oracle row over Java was sufficiently nasty, without introducing different explicit statements of ownership and license into the same file.
4) Classes can never contain methods with code mixed in with the definition like every other language I've used so you get neat ledgers that are easy to browse.
My response to (3) above applies.
5) Anything else? Maybe non-zero based arrays with a range? There may be more.
Yes, the fundamental problem: the language is far too big: bigger than PL/I and Ada which in their day were considered to be oversized.
MarkMLl