After losing almost my entire afternoon trying to figure out why this was happening, I finally found a workaround.
As Ben said before, this is a bug related to FileVault. When you're using FileVault, your LaunchServices database is not read correctly after a reboot. Since it's where your associations (files and URLs) are stored, they are all reverted to the system default. Deleting and rebuilding your LaunchServices database would not work because your settings are correctly stored, they just aren't read as they were supposed to after a reboot.
Sure, I could disable FileVault, but that's not acceptable for me. I have a lot of sensible data in my MacBook and I live in Brazil, where the risk of having your laptop stolen is quite big. So I needed another way to solve this problem.
Luckily, after browsing a LOT of webpages related to the subject, I found a shell script called "GoodCompany", written by a guy named Martin Kopischke. Quoting his description:
GoodCompany is a shell script (with
some accompanying files) to work
around the annoying FileVault bug
which makes Launch Services ignore
user application bindings. If OS X
seems to forget your default browser,
mailer, RSS reader or editor for
certain filetypes after each reboot
and you are using FileVault,
GoodCompany is for you.
You can download it here. Just uncompress the ZIP file, put it in a folder inside your home and run it with the "enable" action, so it'll be set to run after every login. Read the accompanying documentation for more details.
I just tried it and, although is not exactly a "solution" to the problem, it's a fine workaround. WAY better than disabling FileVault.