In my opinion, there is a gap between what you can learn on an Arduino type environment and a Raspberry Pi type environment. When I started using Cortex-M level processors (32 bit, very simple MMU (protection only) I realized that it could be the basis for a "PC/AT" type system where you could explore everything from a simple monitor based operating environment (think MS-DOS or AmigaDOS like) through to a self hosted set of compilation tools. The hardware is pretty easy (there are lots of different ideas in this space) but the curriculum is currently still a bit weak. So with the addition of a simple FPGA based frame buffer I've been building a system that can be used to teach a student computer systems.