This recursion looks a bit scary to me. Perhaps we could have:

- `+ [Blog lastUsedBlog]` returns the last used blog if there is one, `nil` on first use or if the blog is not there anymore
- `+ [Blog firstBlog]` returns a blog (ideally the primary)
- `+ [Blog defaultBlog]` if there's a last blog return that, else return the default blog

I'm not sold on the names (having Blog in both the class name and the method name seems wrong), but I'm out of ideas.