the point you are missing is that in both cases (BSD licensed code and GPL licensed) code, the ability to distribute derived works is *NOT* a right, it is a permission granted by the license of the original work.
without permission being granted, you have no right to distribute works derived from other people's copyrighted works.
i suspect that what is confusing you on this issue is that BSD and GPL have different conditions on that grant of permission, but (in the context of this argument) that is irrelevant.
BSD code is not public domain, any more than GPL code is.