I'm nervous about the "same object comes in via two different tags" for several reasons.
First, an object has only one (full) tag. Of course one can have several equivalent shorthand which expand to the same tag.
Second, since one either gives a tag or dereferences an anchor but never both, how do you manage to have "the same object" with two different tags in the same YAML document?
Finally, at least in Ruby, you can get away with a lot if you monkey-patch either specific objects or even classes, but I hesitate to promote this :-)