It's quite extensible, but there are plenty of things you can't change just by modding. There has to be supporting code for basic behavior, but you can mod with XML and models for content. For example, since the physics engine already has code for wheeled vehicles, you can create new wheeled vehicles, with any number of wheels in any configuration you like, from trikes to 18-wheeler rigs to funky spheres with wheels on top and bottom like some of the exotic designs for Mars Rovers, etc. without a problem. But since the physics engine does not have any code for, say, walking units, you could not create a new "mech" type of unit by simply modding. So, in other words, you can mod to create new or changed versions of existing types of units, but you can't create entirely new types of units (usually, anyway, depending on how creative you are.)
The physics engine itself is also extensible, though, so you can expect us to be releasing new types of units in the future (which would then be available to you for modding.)
You also can't do very much with types of scenarios by modding. You can create your own scenarios that take place on any kind of planet, tweaking the gravity, atmosphere, topography, foliage, and fluid parameters to your heart's content, but you're pretty much stuck with the "game types" that the supporting code understands. For example, you would not be able to create a scenario with an objective of "Kidnap the enemy dignitary" unless the underlying code already understood that type of objective.
On the other hand, with modding you could easily introduce, for example, a set of authentic WWII AFV's with correct driving and combat performance characteristics, and in that sense play an "entirely different game". But due to the "game type" limitation I listed above, you might see some players dropping their Sherman tanks from dropships. This might give you a Historical Bifurcation Seizure, which can be deadly, so don't do it.