This has actually been done in some form in a lot of professional games, and it's almost always been a good feature. It doesn't make battles into a "grind-fest" as some people have suggested here; instead, it creates incentives for playing battles "skillfully" instead of simply winning by virtue of higher stats.
The closest analogue I can think of is
Tales of Symphonia/
Tales of Vesperia, whose "GRADE" system would award you bonuses and penalties for all kinds of things you'd want/not want to do in combat - so positives for successful guarding, finishing enemies quickly, taking no damage, exploiting enemy weaknesses, using Over Limits (Limit Breaks) etc., and negatives for hitting resistances, having allies get KO'ed, failing to cure status effects in a timely manner, etc. It was enjoyable, it gave you something extra to aim for, and it felt like your skillful play was generally rewarded.
Star Ocean 3 also did something similar with its Bonus Board, which built up over several battles as you finished enemies off in exceptional ways, and shattered when you let an ally get KO'ed or critical'ed. Moving out of the RPG genre, the recent
Doom remake apparently had a well-liked "Glory Kill" system which rewarded you with much better loot when you got up-close-and-personal to kill an enemy rather than using shoot-and-take-cover from afar (see
this Game Maker's Toolkit video). The key is to line the rewards up with skillful play, and also, ideally, with things that are
fun to do in battle. If you're giving rewards out for taking a thousand trivial cuts from enemies, like
Final Fantasy 2 did, you've designed it badly.
A few years ago, I implemented a fairly similar "Battle Bonus" system in one of my unreleased games, where instead of having every bonus be available in every battle, I gave the player a single objective at the beginning of each battle - for example, "win within 5 turns", "defeat at least 2 enemies with a single skill", "win using only items", or "don't let (X character) be damaged". If the player accomplished the Bonus objective, they'd receive extra loot and points that could be used to upgrade skills. If they failed to accomplish the Bonus (or ignored it), I didn't take anything away from them. I found it to be a very fun little extra in my playtesting, and people who saw it tended to like the idea, too.
Long story short - this kind of system is good. It's not grindy, and it's not subject to abuse unless you design it poorly. Make sure you line the bonuses up with skillful play and fun actions.