No, there is no difference in performance between the single and tag pairs, from the perspective of the plugin. EE itself can probably parse the tag pair faster, as it will be able to find the closing tag faster than determining that there is not one, but that speed difference should be negligible.
Once CE Image has created a manipulated image, it is cached. Subsequent calls should be very quick, because a minimal amount of processing is performed to determine the image name and check the cache.
I think the speed problem in this case, is due to a feature… CE Image always attempts to ensure that the image being used is the latest, so that the manipulated images always reflect the source image. This is nice to have so that you don’t have to go and clear your cached images every time you change an image; it automatically updates itself. The same goes for remote images, but the problem is, if the remote server takes a while to respond, you get the lag.
With a simple change, we should be able to enhance performance of your remote images drastically by disabling this check. Assuming you are using the EE2 version of the latest version, please change line 1309 from this:
if ( function_exists( 'curl_init' ) )
if ( FALSE ) //if ( function_exists( 'curl_init' ) )
That will prevent the plugin from checking if the remote image has been updated on every call, and will instead periodically re-download the remote image (you can specify the amount of time to do so with the remote_cache_time setting).
I am going to rethink this default functionality for the upcoming release of CE Image. Thanks for the feedback Daniel!
Please let me know if that helps.