Remove the .htaccess from ./blog. I don't see a reason to leave it there at all as its missing any rule indicating that a redirect to www. should exist, and the only rule it has is already within the root .htaccess.
Why is the second rule in the root .htaccess outside of the check for mod_rewrite.c? Put everything within the check for rewrite, except the second rewrite engine directive, you can just remove that.