Sona definetly deserved a nerf as she became way to powerful and at times down right oppressive during the preseason, but I honestly completely agree with you. The nerf was way to harsh and did indeed leave her completely gutted. I am an ADC main so I rarely played her myself, but it kills me to see a beloved and mighty champion, or any champion for that matter, nothing but a hollow empty shell of what they once were.
For Sona, it hits me a little more personally as she was my girlfriend's favorite and main champion. Now she hardly plays League at all and if she does she ends up miserable. Some people litterally only enjoy playing one champion rarely if it all playing another.
What follows is just my opinion on how Riot should approach nerfs and buffs, warning 3 minutes to long of a read ahead with no tl;dr:
To often the League community is so sick and tired of an oppressive champion that they will refuse to acknowlege that a nerf broke them to unplayable status. Letting their feelings overcome their reason and any intelligence they possess. This results in them shutting down any who try to point out the true result of a nerf on one of these champions. Unfairly using the champions previous status as a reason to leave the nerf as is, and even at times flat out denying that the champion is in a unviable state saying they are as OP as ever despite being completely untrue. This sadly results in Riot not noticing the true outcome of their nerf, having to now let data be gathered over time rather than be able to hear that champion's experienced player bases opinions on the results.
The goal to nerfing or buffing a champion is and should be to get them to a 50% winrate, or as close as possible to it excluding the trend of whatever the meta currently is. Anytime a nerf takes a champion from to far above the 50% mark to too far down below it, Riot should go back and re-tweak the numbers a bit that the nerf hit. Not completely reverting them to what they were, but instead a small enough boost to see if it gets them back closer to that 50% goal.
I think Riot to often leaves champions unintentionally in a broken or unviable state for far to long, that it becomes to difficult to pinpoint exactly what needs to be tweaked to fix them. With leaving the original cause as is for an extended amount of time, during which changes in the game are occuring and building up elsewhere, it becomes next to impossible to pinpoint what exactly needs to be changed. Meanwhile nerfs to Keystones and Runes the champion also relies on are being applied to hit the new OP champs that replaced them. Further reducing and worsening the state of their unplayable/unviable status. This, imo, to often results in either over buffing the champion again or sadly leaving them so badly broken a rework becomes inevitable down the line.
I believe this result can, and should, be a little more easily avoided by doing what I mentioned above. It is true, that sometimes a reversion, even if minor, will not restore a champion's playability completely if at all. But by ensuring that a nerf or buff doesn't remove a champion to far away from the 50% line by tweaking the exact same nerf or buff a little as soon as the next patch, it will become easier to identify where and how changes elsewhere affect a champion's winrate. This will hopefully result in more champions being viable, killing the myth of champion favortism by Riot and enriching League's modern legend and experience.