Is it possible to use iPhone's hardware vibrate button to toggle "silent" / "vibrate only" instead?
Solution 1:
You could set your phone up to vibrate on silent and then configure your sounds to be short silent ringtones. Then when your phone is in "normal" mode it will play the silent alerts (The Sounds of silence... Yeah shouldn't try singing) instead of ringing.
Unfortunately you'd have to set multiple alert sounds (SMS/iMessage, Ringer, etc.) but here's a link to a step by step plus sample ringtones: http://www.iphonefaq.org/archives/971156
Solution 2:
Without jailbreaking the device and using a third-party tweak (that may not even exist, although it can be done since jailbreaking allows to control every aspect of the device), no.