If someone can do it better, and still keep it compatible with POSIX, more power to them.
This is not the first place where someone has randomly thrown POSIX into the discussion. "su" is outwith the scope of the POSIX standard. It's in the SVID, but to my knowledge "su" never made into POSIX. The SUS mentions it in passing under setuid() as a non-conformant application.