That’s not the only constraint. The other one is that Linux decided not to have a stable interface between the drivers and the kernel. They keep chaning the internals all the time. This means, by the time we have ported the drivers from one version, they will have changed a lot of things, and if we want to get a new version, we have major rework to do.
This isn’t as much the case with freeBSD, so in that case we only have some small updates to do with each FreeBSD release to get their new drivers.
And, yes, GPL is problematic for us, because there are some cases where Haiku is distributed together with closed source software (for example TuneTracker Systems does this - and in fact even our own distribution of Haiku does, we have non-free software in the package repositories).