Nice review. I've been thinking a little about interfaces too,
recently, in particular the Mozilla embedding API, which I've
tried to understand for the last...year or so. That has to be
one of the worst ever, though I'm sure the developers think
it's a shining example of...something.
I think the ideas for interfaces you pointed out
should be extended to all code, not just modules.
One of the things that takes me the longest in writing
even relatively one-off scripts is that I spend a lot
of time worrying about how much sense the script makes
for whoever will eventually maintain it.