The Room.update_aliases method does not take into account that there can be multiple m.room.aliases states. Because room aliases from separate HSes are in separate m.room.aliases states (with the HS name as the state key), this means the update_aliases function will actually set the aliases list to only contain the aliases from one HS, disregarding the others.
Example (the code should list all aliases for Matrix HQ):
>>> client.rooms['!cURbafjkfsMDVwdRDQ:matrix.org'].update_aliases()
True
>>> client.rooms['!cURbafjkfsMDVwdRDQ:matrix.org'].aliases
['#matrix:utzutzutz.net']