But GPL is the license that rather explicitly forbids combining with some licenses.
EDIT: If you're saying that you cannot combine free with "free" and remain free, then you're right -- you cannot combine MIT with GPL.
And you're right in that a nonfree project can incorporate free code into it. So they have more options, but the end result remains nonfree.
So if I'm going to subject myself to licensing restrictions, it's silly to restrict myself to some code.
Care to shed some light on your or your lawyer's interpretation of the license? Can you point out what causes incompatibility?
The GPL on the other hand does prohibit many licenses. Whether you want it or not. Or whether the people who use your code want it or not.
In the LedgerSMB project, I have started licensing core framework libraries under the BSD license because that should allow easier bridging to proprietary software. We started doing this with PHP libraries, but then decided that Perl shouldn't be a second-class language integration-wise.
There's no reason that GPL code can't depend on BSD code.
These licenses can co-exist and one can choose to license some parts of a project under the GPL and others under a BSD license.
If you use BSD, MIT, etc, you can't combine any GPL licensed code.
You have more possibilities of combining code by choosing GPL for your project.