Replace / Remove Shortcode after 1st run / post

You don’t need a shortcode in a traditional sense. You could use something like {imageurl=""http://google.de/aImage.jpg}

You would use the filter content_save_pre to run before the content is saved to the database a search and replace with the img markup which you get from media_sideload_image(). media_sideload_image() downloads the image from a URL adds it to the media manager and then return the img markup.

Have a look how wp_make_content_images_responsive() works. It something similar as it replaces the old img forma with the responsive image format.