I don't have anything working yet, but a little bit of reading through the code turned up two filters of interest...
print_scripts_array
script_loader_src
print_scripts_array filters an array that appears to just have the "token" name for the script in question, so for example it will be something like:
Array
(
[0] => prototype
[1] => wp-ajax
[2] => fat
[3] => listman
[4] => ajaxcat
[5] => jquery
[6] => scriptaculous-root
[7] => scriptaculous-builder
[8] => scriptaculous-effects
[9] => scriptaculous-dragdrop
[10] => scriptaculous-slider
[11] => scriptaculous-controls
[12] => scriptaculous
)
This filter might be useful if you wanted to do something like use minify to munge all the scripts together. But one issue I see is that you don't have enough info to consturct a url from this. In order to do that you have to dive into the details of the script loader class and essentially implement a new version of print_scripts()... not exactly the cleanest Object Oriented thing to do.
The second filter is a little more promising, it basically passes you the full URL to the script file. It will look something like this:
http://domain/wp-includes/js/prototype.js?ver=1.5.1.1
So from here, you certainly could parse out the path, filename, and even the version, and reconstruct the URL to go to an external server like AWS-S3.
With this you could basically parse the