This is actually an excellent solution I somehow ignored, as I tend to avoid global variables as a 1st instinct.
For the other questions and remarks:
I am not suprised by this phenomena, although I did not imagine such a penalty.
I use a sub that uses some huge data structures and is being invoked quite a lot. This code is of course just a example of the principle.