The "choose a card costing $0 for them to gain, putting it on top of their deck" idea is flawed. For some of these cards, the targets may not be able to avoid being hit by that effect. They could easily lose their whole turn because a stack of 5 Curses got put on their deck.
Yes, that's true, but then there are 5 less Curses. Also if you're in a position where you can play 5 Knaves in a turn, you're probably doing a lot better than winning just by Curses. At any rate, that's the least important bit of the cards, as you can tell - it's the equivalent of the "Knight effect", and it's easily interchangeable. The main point of this post is the other half of the cards.
EDIT: Also, you can't really talk about which card costs the most or the least out of an arbitrary set of cards. Which costs more, a card costing $4, or a card costing $3P? There's no strict ordering.
Well, for the purposes of this card, why don't we translate a Potion to, say, $2.5? That way there is a strict ordering. Or, we can just say that Potions don't count, like a number of other cards do.