You are incorrect in assuming you can't find out if another child already
exists.. Usually this is a problem of properly allocating resources so
that you know the other child exists. Since you are using identify, you
already don't have a "self describing" bus, which means that you have
to either use hints, or another method to make sure that your device
doesn't already exist.
It's not quite that simple. See the block comment at the top of
src/sys/dev/ichwd/ichwd.c for an explanation.