here is my solution to this issue:
I think it's a simple yet clean way to allow people to use paperclip to deal with their existing S3 file base. It does not break existing functionality neither it changes the default behavior. It's just an under the hood additional feature. I made my app run with it and it resolves my problem.
Merge branch 'master' of http://github.com/thoughtbot/paperclip
Allows url encoded s3 keys to be found
Sorry forget about this. This started from a wrong assumption, the problem no longer exists to me.