Yes there are dozens of variations across all of the components which is why it's so complex.
I've heard the original problem was even that, where the target hardware changed at the last minute from what the developers were given to work with...
I suspect the solution they are going to deliver is a rewrite which abstracts the hardware layer...