In many hardware projects it would be nice to have the freedom to switch between vendors easily, mainly microprocessors and microcontrollers.
I can see many reasons for wanting to have this freedom, one of them being the ability to easily switch to a cheaper company if one company decided to jack their prices up. Another situation is when a designer decides to change the project in a direction that the old microcontroller just can't handle, I can see this happening within a company that is trying to reuse hardware modules.
Is there any way of designing hardware to be modular enough to easily switch out these core components? What are the issues with designing this way?