Técnicamente, sí. Si está bien o mal... sin comentarios.
De todos modos, la seguridad de la base de datos se divide en 2 funciones:
- db_accessadmin para administrar usuarios (o el permiso "ALTERAR A CUALQUIER USUARIO" como mencionaste)
- db_securityadmin le permite administrar membresías de roles y permisos de objetos (o "permiso ALTER CUALQUIER ROL)
Esto se menciona para sp_addrolemember .
En realidad, está cambiando el rol, no el usuario, al ejecutar sp_addrolemember, por lo que "ALTER ANY ROLE" es suficiente sin tener derechos completos de db_owner.