Some of the challenges of implementing this way of working include creating a culture that provides an adequate feedback loop and checking new code carefully while reviewing it quickly. Waiting for a review is a blocked state that stops the developer from implementing the feature that's being reviewed.
While this waiting time can be used for other purposes, not being able to progress will quickly lower productivity. Either the developer will keep a few features in parallel, which is highly problematic from the context switch perspective, or they need to wait and roll their thumbs until the review is completed.
The context switch is probably the most serious killer of productivity. One of the keys to keeping your team's productivity high is being able to start and finish a task. If the task is small enough, it will be finished quickly...