I guess my initial question is going the wrong way. I just wanted to know why Arduino creators preferred to run Arduino at 16Mhz instead of 20Mhz if the device can do 20Mhz. That is it.
Wouldn't be any issues with Software Serial or anything else with this increase in speed?
Yes. UART timing, delay()
timing, as well as the bootloader I mentioned before.
I know that if we want to run it at 20Mhz there are changes to do, starting with bootloader and following with some includes and libraries. Obviously we are not going to make changes that will create incompatibilities and make the Arduino useless.
The bootloader is the showstopper, as it requires a hardware programmer to change it.
Not at all. You can use Parallel Programmer
to burn the bootloader.
There's a 20MHz bootloader out there, and programmers of varying cost. If you really need 20MHz it's within reach.
As I wrote in my initial post, I don't want to change anything.