I've toyed with the idea that although learn by doing is great, at the same time it doesn't make much sense to be doing low level things to continue increasing your skill. I.e. when you're at Journeyman at Restoration, you shouldn't be able to cast the cheapest Restoration spells to improve that skill, you should cast Journeyman level spells for it to count. I.e.:
* You don't become a master alchemist by mixing ice cream, but by going for the harder potions involving more risk.
* You don't become a master of blade by chopping onions, you should only get the increase when doing that particular perk move.
Some of these exploits were already removed in OB, i.e. that you don't get an increase by casting destruction at a wall, it has to be some enemy. But I think there is room for more improvements.
Yes, this bothered me as well.
I think each task should give your skills depending on the difficulty of the task compared to your skill level.
So if you are a low level sword man and kill a low level bandit, for each slash of the blade, you get decent amount of swordplay skill boost.
But if you are a really high level sword master and kill that bandit, you do not boost your sword-play skill, that much, as it would be below you.
If you are high level sword master and kill a high level foe with your blade, you get decent boost of your skill with each slash.
If you beginner sword man and manage to kill a high level foe with your blade, you would gain a lot of experience with your blade skill, and advance it a lot more than other situations.
This can apply to all other skills, like alchemy of your example.