~/.profile and ~/.xprofile are where I set environment variables. ~/.session and ~/.xsession set my terminal and X session, respectively.
~/gpg/ is no more. I don't use gpg to save my passwords anymore, I use openssl now.
~/mail/ moved to ~/var/mail/
~/proj/, ~/files/ and ~/tmp have the same function they had.
~/usr/ is where I put binaries and other files of applications. Each subdirectory is for a different application. I use environment variables to set $PATH and $MANPATH to the corresponding directories in each ~/usr/*/.
~/skel/: Where I keep templates and skeleton, for example, ~/skel/c/ has the skeleton of C programs I write, etc.
~/trash/: Where I send my trash to, see fmutils for the scripts that manages the trash.
~/apps/: Where I keep .desktop entries for each application that has an entry in pmenu.
~/mnt/: Where I mount devices.
~/rules/: Where I keep configuration files (or rules files, as I call them) and databases for applications. For example, ~/rules/vimrc is my vimrc, ~/rules/rss contains the list of RSS I'm subscribed to, ~/rules/mime contains the mimetype-application associations that I use with my file-opener script xopen.
~/themes/: Where I put fonts, cursor themes, icon themes, Xresources, etc.
~/var/: Where I keep variable stuff. It is a new directory I added recently. It contains stuff like cache, browsing history, shell history, mail. I may move ~/trash/ there.
I'm working on ~/fav/ to keep bookmarks and on a script that symlinks entries on this directory to commonly used files.