Junking is really strong. Even in the worst case scenario, handing out a Curse is, edge cases aside, equivalent to handing out a -card token some time in your opponent's next shuffle, and if Witch did literally that instead of junking, you would still buy it in a lot of situations. However, unless your opponent already has an overdrawing engine, it's better — if he draws exactly his deck, that Curse might be just enough to prevent his engine from functioning at all which can be super important, and if the Curse hangs around for a second shuffle, it's twice as bad.
What's noteworthy about junking is that you need fast cycling to combat it, and junking itself slows your cycling down significantly. You can most obviously see this in Ambassador games, where one player ends up with a super thin deck pretty fast while the other player is probably not at all thin at that point, because a very small advantage in the early game (such as not colliding Ambs) can lead to a very dramatic difference a few shuffles later. This is also why you need both trashing and junking — trashing lets you play your junking more frequently, while junking makes your opponent play his trashing less frequently.