Arduino UNO and Mega are good examples of bad design. Single row male pin connectors at two sides of the card makes it hard to use more than one shield in a project.
How do you for example use proto-board and LCD-board in the same time ? Or how do you use Ethernet-board with any other board, when the RJ-45 body connector makes a short circuit to the next shield ?
Arduino Nano is a bit better, but still..
There should be a processor board with two line 90deg male pin connector for a flat cable. The board should also be of smaller dimensions.
Then you can use as many shields as you want. And you can stack them any way you want. With a flat cable you can open the stack of shields like a book and make modifications to the shield on stage.
Better still if the connector is built like the GPIO of Raspberry PI. Of course some signals are different, but most of the lines can find a home and the remaining can be used with care.
Another solution would be a passive shield, which has the connectors of Arduino Nano and 40 pin flat cable. Of course there can also be a power source for 3.3V and 5V