I still don't see the reason why this doesn't work.  

Even if it is really the case, then I would say it is still worth duplicating codes to avoid performance penalty in such a basic function that is going to be used in performance-critical codes.