Nice to see a post about this. :-) 100% of our deploys are done using symlinks.
We copy our releases into revision-specific folders (which are rev123, rev124, etc.).
Deploy is done using:
ln -sf rev124 current
To revert: ln -sf rev123 current
This means you might need to cleanup old releases from your production server though.