Personally, I like having tasks for code review work since it allows those things to be estimated properly. It also creates a tracking item that clearly shows if/when it gets done. And it lets you explicitly assign someone to do the code review, and keep that work balanced.
But I am also of the opinion that not all work needs code reviews, and certainly not always formal ones.
If your organization requires code reviews for everything, then it becomes a bit of boilerplate work to create all the tasks, and it represents a unit of work that is separate. If you're requiring it for everything, you don't want it separate - you want it ingrained as "something as natural as planning/coding/testing". So while I think that this approach to software development is overkill at most places, it is appropriate in others. In those cases, I would work to make code reviews a step in the process, not separate tasks.