Is there any way I can prevent hotlinking on Amazon S3 without using signed URLs?
I use Apache RewriteMap to remap relative links to select file extensions -- *.jpg, *.gif, *swf, *.fla to Cloudfront. Basically makes the url of your images present as relative links to your site. It doesn't prevent discovery of the S3/cloudfront url totally, just adds a layer of difficulty for the would be thief.
Might be worth a try, apply the hotlink restrictions via htaccess with the above method in place. I haven't tried it myself.