Unfortunately, we can't ever change that one, or the whole world of existing stuff will break.
It's intended as a shell semantic where anything bare on the command line just gets run, no matter your scope.
However when we introduced classes, we thought it was a more "dev-oriented" semantic, so we changed return there.
This will only return 'this will return':
class foo {
[string] ReturnTest() {
'this will not return'
return 'this will return'
}
}
([foo]::new()).ReturnTest()