Rewriting Image URLs from dynamic to original

I am not sure about complete scope of your requirements, but I would probably:

  1. Register special image size(s) that would be used instead of original.
  2. Tie watermarking to generation of that size.

This way there is no need for dynamic image processing. As for your concern about older images having no watermark – you will be able to (re)generate sizes for them using one of the plugins floating around (that is quite common operation).