Separating them makes both tractable and stops the wrong control being asked to do the work.
The document is a delivery questionWhat one authorised request returns sets the ceiling. Everything client-side sits below it.
The viewer is a code questionRendering, annotation and licensing logic are a real asset, and the transform protects exactly that.
Attribution outlives preventionA per-recipient mark applied on the server keeps working after a copy has already been made.