Honestly, I don't really like the idea of having a program guess what you want. The problem I have with it is consistency. For me, one of the key aspects of an easy-to-use interface is that it always does what you expect. For example, if a control appears in one location the first time I use it, I expect it to be in the same place next time. If it's anywhere else, I'll be confused and annoyed. Even if it moved to a place where it's more useful to me, I'll still be annoyed, because my expectation is what counts most.
As a concrete example, newer versions of windows hide by default start menu shortcuts that aren't used very often. I hate this feature with a passion. I usually remember where a shortcut is, and if it's no longer where I put it, I have to spend several annoyed moments figuring out where it went.
Your suggestion of automagically creating mail filters would be even more irritating to me, especially since there'd be a high probabilty of the program getting things wrong. Also, without giving it much thought, it strikes me that the AI for such a feature would have to be very complex and resource-eating, considering all the different factors that could affect filtering.
And it would be far worse if a program actually got things wrong and made things less useful. Windows can be like this sometimes. I once decided to modify a Windows 95 .ini file for some reason or another. When I rebooted, Windows, in its infinite wisdom, fired up some sort of registry checker and replaced my "corrupted" registry with a "recent" (2-year-old) backup without prompting me. Gee, thanks. That's an example of how such heuristics can go wrong. Rather than re-install everything, that's when I decided to move to Linux :). Linux never did anything like that to me and I'd like it to stay that way.
As for progress bars that have some semblance of accuracy, I'd be all for that also, but in practice that's much harder than it sounds. Often, the only way to find out how long an action will take is to actually perform it and see. And does it really matter? Nice progress bars are near the bottom of the list of improvements I'd like made to any software.
I think that if something can be automated or done more efficiently, the program should allow users to configure it to their liking rather than try to figure it out for itself through AI. Linux tends towards the former, not the latter, and I definitely don't want this to change.
Still, interesting writeup. +1 :).
Klingon function calls do not have "parameters" - they have "arguments" - and they ALWAYS WIN THEM.