This is an old problem appearing in a new context. We've had this battle already with technologies like c# and .net. There are questions about the C# language that don't need to have the .net tag. Then there are questions about the .NET libraries that don't need to have the c# tag. Then there are questions about both that should probably have both tags. And then there are questions about VB.NET that don't require a c# tag, but people put it there anyway because the answers are likely to be the same and the c# tag is [at least perceived] to attract more users than the vb.net tag.
I can think of plenty of other examples with other languages, technologies, and frameworks.
Blah blah blah. I just don't get it. Too much headache for me. I follow these rules to keep me sane:
When asking a question, I tag it with the most descriptive combination of tags I can think of. You have 5 tag slots available, and there's little to be lost in using all of them. If it makes your question easier to find, apply the tag.
If you come across a question that appears to be mistagged, in that it has an inaccurate tag or is missing a critical tag, you should retag it as appropriate.
The rest of the time, you just have to find better things to spend your time worrying about. If people want to ask a question about Ruby on Rails, and tag it both ruby-on-rails and ruby (because Ruby on Rails does, in fact, use the Ruby language), then that's their business. I struggle to understand how that is hurting anything. The question certainly isn't mistagged, and I don't see how it's an "abuse".
Yes, there is a subtle split. Yes, we can pontificate about it all day. But it all comes down to the fact that people just don't care, and for good reason. It's all too complicated. I just want to ask a question about a problem I'm having working in Ruby on Rails. I can figure out to use the ruby-on-rails tag, but I don't know if my problem is related solely to the Rails framework, or if it also has to do with the Ruby language. So therefore, and because Ruby on Rails is obviously related to Ruby (it's in the freakin' name), I go ahead and tag my question ruby, too. I'm not abusing anything or anyone. It's not malicious. And it's not even that big of a deal.
For ideas on how we can teach users about applying the tags properly in future
In fact, this is precisely the problem. No one can come up with any ideas on how to do this. There is no good way to educate users about this, and most of them simply don't care about the finer points of distinction, where a language stops and a framework starts and vice versa. And why should they even have to?
That said, if you want to clean up the Ruby and Ruby on Rails questions, then there's nothing wrong with that. But the main focus of that clean-up effort should be "editing for grammar, typos and formatting", not just to retag all the things.