Like I said, tradeoffs. LLVM for example doesn't require copyright assignment, but does require a contributor agreement for patent purposes for significant contributions.
Contributor agreements are a necessary mechanism to protect the project and ensure its future when dealing with patents or preparing for the potential of relicensing.
Contributor agreements are a necessary mechanism to protect the project and ensure its future when dealing with patents or preparing for the potential of relicensing.