Even microcontrollers would merely require custom compilations that turn off features.
There are no technical reasons for having more than one codebase, only economical and coordination-related.