No, its not exact - I can still extract the BSD code out of the project and use it without the GPL restrictions. You didn't relicense the BSD code, you just included some code that has its own license.
It would be legal to take BSD code and add an additional clause that said, "Not for military use." It's the same idea. You've changed the license by adding restrictions. The old version is under the old license. It's the same if you convert public domain code to the GPL.
> You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
The BSD does not say anything like that, so you are allowed to add restrictions. This is why you can place the GPL alongside the BSD, because you are adding restrictions. The BSD has nothing that isn't already present in the GPL (it is "GPL-compatible"), whereas the GPL has lots of additional restrictions, but since the BSD does not prohibit this, it is fine.
> The BSD does not say anything like that, so you are allowed to add restrictions.
That is not how copyright or the BSD license works. You don't get to change the terms, since BSD doesn't give you permission to change the terms. Only the copyright holder can change the terms.
The analysis is clear that it is contrary to the consensus opinion, and there is further discussion refuting it in the comments. It has never been tested in court.
Since the commenters over at Groklaw are much more informed than either of us, and there is much more written than we could ever hope to figure out going back and forth like this, I propose we call a truce.
Relicense has a very specific meaning.