There is no agreement as to what constitutes standard Gcode but most recognize Fanuc as the de-facto standard
That is not entirely correct.
Mach and other modern controllers implement the NIST version of g-code. That means programs are portable across any NIST-compliant controller. It is an 'open' standard, and like the PC vs others, open standards win in the long run.
Fanuc is only partly NIST-compliant, with the extra disadvantage that code is not portable between different Fanuc controllers. They have changed their own 'home base'. They have chosen to maintain some degree of backward compatibility within their family - going back to the days when controllers were huge boards of chips with not a uP to be seen.
Neither is code portable from any Fanuc to other old industry machines, some of which are really orphans today. They have the same history. To be sure, some of these machines still sell - to an installed base. But some more adventurous owners are starting to rip out the old stuff and switch to NIST controllers. The cast iron is still fine, but the electronics is past its use-by date.
The 'little' controllers mentioned, like GRBL etc, aspire to supporting NIST, but have not got there yet. You have to decide what you want to do with your CNC before deciding whether one of those will suit you. You also have to get fairly familiar with g-code first - there's a Catch-22 in there.
Cheers
Roger