I'll start by apologizing for the long post.
I work as a PO for two products that are handled by the same team.
I get my road map items from a Product lead that are responsible for several products and it's that person that communicates with our real customers. This person can in the middle of a sprint request high level estimates for new roadmap issues. The issue can be small or very big and require investigation which messes up the sprint.