To not have software engineers participate in hardware design leads to an over or under designed situation and either way your system winds up being more expensive than it needs to be.
I've seen too many generalizations to support different processors that only make code more complex than it needs to be.