Short answer, yes, once the URL has been rewritten based on the URLToolkit. Execution should be invoked on the rewritten URL, not on the requested URL.
1: UrlToolkit {
2: ToolkitID = Drupal
3: Match /sites/default/files/private DenyAccess
4: Match /sites/default/files/(.*).php DenyAccess
5: Match \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$ DenyAccess
6: RequestURI isfile Return
7: Match ^/favicon.ico$ Return
8: Match /(.*)\?(.*) Rewrite /index.php?q=$1&$2
9: Match /(.*) Rewrite /index.php?q=$1
10: }
Forgive me for being verbose, but just so I understand how things work, if a requests comes in for the following url:
http://www.example.com/sites/default/files/styles/thumbnail/public/banners/welcome.png
If will try the following lines in the Drupal URLToolkit above:
Line 3: Does not match since URL does not contain "private"
Line 4: Does not match since URL does not end with the ".php" extension
Line 5: Does not match any of the listed extensions
Line 6: Checks to see if file exits, and /INITIALLY/ it does not.
Line 7: No match for favicon.ico
Line 8: Does not contain "?"
Line 9: It DOES match (or at least it should) and rewrites the URL (verified with wigwam) as:
/index.php?q=sites/default/files/styles/thumbnail/public/banners/welcome.png
Now, this is where Drupal steps in and recognizes that based on a fragment of the URL ("files/styles" <- may not be the exact fragment, but you get the idea) it needs to generate a new image based on a file that already exists:
/sites/default/files/banner/welcome.png <- uploaded previously
Drupal will then generate the requested file and save it at the appropriate location. All subsequent requests to the original URL will now stop at Line 6 above because the file now exists. No need for ExecuteCGI since it is just returning the file.
Anyway, just a guess, but it seems that somewhere along the way it sets ExecuteCGI = no too early in the process based on the original URL, not on the rewritten URL.
Hopefully that is clearer?
Thanks again!