> Genau genommen kann man mit ner SUB durchaus Werte zurückerhalten. Ich kann die Sub ja einfach ne Variable verändern lassen

Ja. Bei einer Funktion kannst Du aber an eine Variable zuweisen, bei einer Prozedur (SUB) nicht. Daher haben beide ihre Berechtigung ..

a= f(x) geht, wenn man eine Funktion f(x) definiert hat (wie in Mathe ..)