For example, if you choose a i386-based SBC, you probably have some flexibility. But the range of flexibility still depends on the support chipset (or there lack of) as well as RAM/storage capacity. If you choose an SBC with a proprietary processing, you have no choice but to use whatever the manufacturer provides.
For our comparison, the Z-World OEM2500 board uses a proprietary Rabbit processor, which limits your choices to none. You must use the kernel that comes with Dynamic C (the development platform from Z-World). Z-World offers a TCP/IP stack and related software (such as a small web server) with their development platform, though.