Why don't you move your app to Passenger? It runs much better than cranky old FCGI. In Passenger, all you have to do to restart an app is create a restart.txt file:
The file gets deleted as soon as Rails has restarted.
Chances are you're already on Passenger without knowing it. That would explain why no FCGI process got killed.
Oh, and AFAIK you don't need to restart Rails to apply a database change, only if you changed something in Rails controllers or models. If your database changes are not reflected, maybe it's a caching issue?