Just did 3.1.2 jb to 4.0.1 jb on my 3Gs Monday night....still working on it (tweeking/learning mostly).
One note......I'm not unlocked, so can't comment there.
I miss Proswitcher and Backgrounder. Almost second nature with the way I had the swipes and config working when on 3.1.2. Those are two apps that should've been pay apps, IMHO, I'd gladly paid for them.
Backgrounder crashes to safe mode now for me....tried it twice. Proswitcher is not compatible, might not ever be updated. Don't like the new app switch method (yet). Apps just stay open in the background (if they are capable) and slowly just eat away available memory until you kill the process with SBSettings. After rebooting, I always hovered around 128-140mb of memory on 3.1.2. On 4.0.1, it's starting around 110mb, and it goes down from there constantly unless I manage it constantly. While this memory issue may not be a big deal on a iPhone 4, the 3Gs starts out with less memory.....
FWIW. My $0.02.