In reply to mark k..

It seems perfectly realistic to me. Different circumstances warrant different options. I just gave one option above.

Another option would be to set the plugin to switch itself to being updated from an external repo, but prompt the user to bypass this and upgrade to the latest one on WordPress.org, although with an appropriate warning to test before doing the upgrade.

There are lots of other ways of handling this too, but I don't think any of them warrant inclusion into WordPress core.