Is an interesting idea... I don't think I've seen it in use anywhere (though I've mostly dealt with C-like). Add in the curly-braces for the definition, and you've just made functions into variables with blocks. And are they really any different anyway? The code-in-memory doesn't get duplicated when you make another instance, just the scope, so it's equivalent to a variable in a singleton.
Just pondering out loud :)