RetroArch has the old-school Linux problem of “all the functionality you need, plus all the functionality anyone might ever need, plus all the functionality that no-one needs, all arranged seemingly at random in dozens of menus”
This definitely does happen sometimes, especially these days, but this is explicitly opposite to old-school Linux design principles. A program should do one thing, it should do it well, and it should be able to be plugged in to other processes in order to accomplish whatever this single-purpose program accomplishes. If you want it to do something else, go get/write a different package to do something different. This is actually explicitly stated in the “Unix Philosophy” papers by Ken Thompson, Dennis Ritchie, et al.
This definitely does happen sometimes, especially these days, but this is explicitly opposite to old-school Linux design principles. A program should do one thing, it should do it well, and it should be able to be plugged in to other processes in order to accomplish whatever this single-purpose program accomplishes. If you want it to do something else, go get/write a different package to do something different. This is actually explicitly stated in the “Unix Philosophy” papers by Ken Thompson, Dennis Ritchie, et al.