As I’ve mentioned earlier, I’ve been using Sawfish for translucency effects. I mentioned the translucent-move thing, but it had a drawback—if I have a window that already has an opacity property set, it’s set 100% opaque post-move, so I decided to hack up a little lisp to get it to base off the pre-existing opacity and restore it once done. It works quite well.
The objective was to eventually have the ability to set Sawfish to match windows based on window class or type (e.g. whether it’s a dock or dialog box or desktop file manager, etc.) and set an opacity level based on those things. Stock Sawfish does not incorporate the ability to match based on EWMH type or to manipulate opacity. Fortunately, as extensible as Sawfish is, its window matching module permits being extended to add matchers, properties to be manipulated and even supported types. So I took it upon myself to add support for such matching and manipulation.
Lo and behold, it works.

So now my dock windows are 85% opaque, as with KWin.
You might have noticed that I’m linking off the Sawfish wiki now. I’ve uploaded my extensions into the wiki. While doing this, I looked around and found an extension to incrementally select and switch to windows based on their names. This is sort of what I was thinking of doing over a year ago. This doesn’t tab-complete like a UNIX shell, it cycle completes like the Windows CMD shell instead, but it’s very effective and I’m enjoying it very much.
Suffice it to say that Sawfish has won me back. I might play around a little with KWin and its compositor, but Sawfish’s extensibility wins my favor.