I have to admit that your questions have given me a different perspective on DBI. Theoretically, some other table is accessing this table, so the answers to the first and second questions would probably be no; however, if you made some declarations with has_a before has_many, it seems to me the answer would be yes. In that case, I would go back and add another argument to see if that would get the desired result. It may also be that there is bug crawling around somewhere. Check out RT:
http://rt.cpan.org/Public/Bug/Display.html?id=16493
http://rt.cpan.org/Public/Bug/Display.html?id=3305