Actually, ref counting by hand, can produce faster code.
If the compiler adds recounting (for local var), the compiler always assumes the procedure could be exited by exception.
Therefore the compiler inserts an "try finally" too.
If you add ref counting by hand, you may know that there can not be an exception, and you can skip the try finally.
So you save the try finally time.