Using a selection to prevent the final write will do something. The basin filling will still happen in the internal temporary surface, but it won't carry through to the final result to unselected areas. This technique will likely result in a big hole unless you're selecting the basins themselves.

A really ugly technique that will carry through into other filters such as incise flow or precipiton erosion is to paint a value of -1 (or negative something large) at the low spot of a valley that you don't want filled. The basin fill algorithm has a "feature" that places below zero always act as sinks and so the fill will drain away into that little spot. You just need to remember to fill the spot before moving on to do other things. A small mask and median filter will avoid it. If you're going to force that valley a lot, making a selection image and loading it for forcing spots up and back is an option.

The long-term goal (about twenty years now) is to allow multiple surfaces, which would allow copying to a source and cloning back into the main area. I don't see that happening any time soon, though.

If I ever get around to adding additional annotations for a surface instead of just straight height fields, allowing logical sinks without breaking the surface (that is, the sinks get applied before the fill and restored just after the fill) might be a useful feature.