The system function works as defined, which is for the current database user
When connection with a domain account with sysadmin role:
select is_member('UserRole'), user_name(), suser_sname()
execute as user = 'Carl.Federl'
select is_member('UserRole'), user_name(), suser_sname()
revert
go
Output is:
0 dbo AAUSA\carl.federl
1 Carl.Federl Carl.Federl
SQL = Scarcely Qualifies as a Language