Our upgrade tests run mysql_upgrade -uroot without sudo (which shouldn't be necessary, since authentication doesn't use unix_socket plugin). It does the job all right, but at the end it complains about not being able to create /var/lib/mysql/mysql_upgrade_info. It doesn't make it fail, though.
I didn't try to reproduce it manually, but I expect it should be the same.
Maybe it's just a documentation issue and it's supposed to be always run under sudo.
No information about 10.0.