You can define multiple pointer keys under a Name.
Protocol and reference implementation recognizes couple well known ones: e.g. account_pubkey
So, if in a spend transaction you use a Name, then the implementation tries to find account_pubkey pointer. It iterates over list of pointers and stops on the first match.
As far as I am concerned, this wasn’t intended. It seems like I implicitly assumed it to be a map/dictionary the way it is implemented in Sophia, where keys only appear once but the spec was actually changed to a SHOULD NOT instead of a MUST NOT. This is also what the JSON spec does but I’d say not very intuitive—also most JSON parser will actually complain about it.