You have a misconception. These are not two different nodes with the same uid as that is impossible. Uid stands for UNIQUE identifier.
What you have is a single node with 2 types and having both the dogName and catName predicates.
If you want to remove only the dog or cat specific data you will have to perform the delete specifically deleting the specific predicates and values.
IMO it is easier to understand using the RDF syntax because you easily see the difference between S** SP* and SPO methods.
<0x34232bce> <dgraph.type> "Cat" .
<0x34232bce> <catName> * .
This leaves the Dog dgraph.type value and leaves all other predicates besides the catName which gets deleted no matter what value it has.