“heat rises” is a common misconception comming from the fact that hot hair is lighter than cold air and rises. But heat doesn’t rise, fall or whatever, it radiates and spreads in any direction. You’ll even note that in a number of places (large halls etc) heating is provided by heat plates on on the ceiling below which you really feel the heat. In a board where everything is solid, heat spreads in every direction, there are no moving parts which will change position once hot (unless the board melts of course :-)).
One difficulty with a CPU at the top is to cool it inside an enclosure where there is no air flow. However for developers it’s more convenient this way, when the board lays on the table, for sure. When at the bottom, it will need a thick plate that increases the total height (and that’s a problem for a number of deployments, though here it would allow to swap M2 and the plate and would probably not change anything), plus it doesn’t allow us to replace it with whatever cheap tiny heat sink, the board-large plate is really needed when the board is on the table.
I agree with @hipboi that for a bare SBC with no enclosure and just a plate as large as the board, it’s difficult to go higher than 10W with the CPU at the bottom. On the other hand, once in an enclosure it becomes the opposite, spreading 15-20W into an aluminum enclosure is easier when the CPU is touching the case than when there are small holes and a fan inside.
FriendlyElec managed to find a good compromise with the latest R4S/R5S, with the CPU at the top and an extruded aluminum case with a large part directly touching the SoC. However that means you must use exclusively that case (which has no hole nor room for a console port).
There’s no single solution that satisfies everyone in the end.