I totally forgot about the AppROT object. I can grab any open ArcMap or ArcCatalog session through that, and go from there. I don't need the script to be running inside ArcMap's Python window at all.
kimo, to answer your question, with the comtypes package in Python you can use COM objects much as you would in VBA, with some differences. I'm still learning something new every day.
COM interop performance in Python is about the same as VB .NET, so if you really need the performance of VBA you need to still use that or migrate your code to C++, which is what I use to create coarse-grained COM objects that can be used by .NET or Python.
I submitted an abstract for a user presentation at the 2010 Developer Summit on using ArcObjects in Python. Let's see if it gets enough votes to be accepted.