The option is called --dbname for consistency with other client applications, but because pg_basebackup doesn't connect to any particular database in the cluster, database name in the connection string will be ignored. "
Have not looked into the source to see how pg_basebackup connects, however I am guessing what ever it does bypasses the mechanism for doing SET ROLE on connection. In pg_hba the 'dummy' database replication is used for replication connections, which is what pg_basebackup does. Since it is not an actual database there would seem to be no way for the alter user backup_admin set role to dba_admin setting to take effect.
It is inheriting role attributes. I am able to do CREATEDB,CREATEROLE... etc . Even i am able to do manual start backup and stop backup also using *backup_admin.* **
So I've recently read that while some role attributes are inherited SUPERUSER is not. Everything you are seeing work or not works appears to be due to superuser privileges differences.