this seems worthwhile because the performance of the 2nd two options is a bit slow.
would this also make it easy to expose the zoom like you expose scales? i'm imagining the usecase where you zoom in and want to share that view somehow by fixing it.
Now that Plot has a render API, would you still opt to rerender the entire plot instead of the individual marks? (edit: which I think is what the fourth approach describes?)