I'm pretty sure you'll not get user preferences in the nodelets for quite a while (if ever). Nodelets are rendered on every page load and so are best when they can be cached. And cached nodelets can't be user-specific.

Your caching for best/worst nodes is quite nice but it still reads quite a few records out of the database. Doing that 4 times for every page load would probably end up with more DB load than we had before your work.

When putting a smiley right before a closing parenthesis, do you:

Use two parentheses: (Like this: :) )
Use one parenthesis: (Like this: :)
Reverse direction of the smiley: (Like this: (: )
Use angle/square brackets instead of parentheses
Use C-style commenting to set the smiley off from the closing parenthesis
Make the smiley a dunce: (:>
I disapprove of emoticons
Other