This has been discussed already broadly elsewhere
Block is not are recursive function, in a way it is even not a function, but a scoping construct.
Block
Block and Module are tools for doing procedural programming with local variables. Block localizes them and Module renames them.