||I am afraid Matt that you are indeed wrong. There's no overhead or cost directly related to the fact that ArcGIS is customizable. The ArcGIS applications (ArcMap, ArcCatalog, ArcScene, ArcGlobe, etc) were created using a library of object classes called ArcObjects. ArcObjects is a COM+ component library made up of hundreds of low-level objects that perform a wide variety of tasks. Up until Microsoft's .NET initiative, COM+ was the latest and greatest paradigm in the development world. ESRI's decision to use COM+ was a natural one. Now, of course, it took a lot of time, effort, and money to create the ArcObjects library. But, now that it's there, allowing others to use it is nothing extra. Think of it like a city's road system. It costs a good deal of money to build it, but it takes nothing to allow you to use it. Sure there are maintenance costs, but that goes with everything. But the fact remains - you don't save the city money by walking to work.
In your post, you referred to "VB objects". That's also a misconception. Visual Basic is a COM compliant language, therefore usable to create ArcObjects applications. This is also true of VC++, Delphi, or any other COM compliant language. Scripting languages, such as Avenue and AML are not COM compliant, making it impossible to use them to write ArcObjects code. Now, I'd have to go back and look, but I'm pretty sure that scripting support will be added at version 9. Python was one of the languages mentioned. Again, I'm not 100% certain of that, but I do believe I read that somewhere. Plus, Python is currently being updated to be a .NET compliant language. When Python.NET becomes available, you can use it just like you would VB to program with ArcObjects. Or at least you should be able to because I think all .NET languages are COM compliant by definition (might be wrong on that).
ArcObjects are the building blocks that were used to create all of the ArcGIS applications. The fact that they are available to developers opens up an almost infinite number of possibilities. ArcGIS can be customized to do almost anything. If you don't like the way something works, you can write your own and do it your way. That's one of the things I do everyday. I write tools for our clients that make their everyday tasks simpler. Instead of having to go through 15 mouse clicks and 5 menus in order to do something in ArcMap, I put a button on their toolbar that turns the entire process into a single button click. The point is, you don't have to do everything in VB. Use whatever COM compliant language you want. The almost limitless customization possibilites for ArcGIS, plus the ability to just create your own applications altogether, it one of the software's strong points. The only drawback is that now you actually have to be a programmer to do it. And tht's good too. I like job security :)