They haven't been portable to other operating systems, and have been wrong, for at least 18 years at this point. They will have hit EFAULT or EINVAL on other operating systems. You can see the commit where Matthew Dillon introduced EFAULT and an argv[0] bodge into DragonFly BSD in 2005, for example, on this very page.
Well, when every possible change would cause something to be wrong you have to pick your poison.