Whew, I'm on a roll. I have been shooting down design problems faster than I can hack them in code. I'm also decided at getting serious for a talk at the OLS 2003 about pervasive component-driven software (where the heck is it?) and XPLC, of course.
I have been thinking about the "why" a lot lately, and I just feel that there are only a few key features that add most of the overhead seen in current component sytems, either in ease of use or in actual performance, and that makes people give up on them or not think about it at all. Distributed objects have hardly anything to do with components (heck, objects themselves could be done without, as PILS and others shows), but its a sexy feature, so there it goes, dragging everything else to hell with it, even if nobody really needs it.
Come on, think about what widely deployed distributed applications using "transparent" RPC and its ilk exist. There's NFS, NIS and SMB, all great favorites, right?
So off developers go, going without components if they can, and rolling their own specific solutions if they can't (think of Apache modules (particularly in 2.0), Netscape plugins and all these others). Guys, if you want to compromise a bit about running your objects halfway across the planet, you could use components for almost everything...