Having programmed Assembler has nothing to do with it (I still program assembler on occasion, mostly when absolutely nessecary). Functions are *not* just glorified gosubs (or jumps/branches) because they have their own namespace. I find block commenting much more useful than gotos for debuging purposes.
That is the way the windows apl works too.
The Windows API, and indeed *most* API's are objective in nature. Thats how OOP originated. Engineers at Xerox PARC, while inventing the GUI, also invented OOP (more specificly SmallTalk) to make it all manageable.