I ran it early in 3.0, and it was a learning experience for everyone.
The players as you represent them would I suspect do well with exactly what you are already doing: Stomp them with good tactics if they use bad (where appropriate, puddings shouldn't flank for instance), and talk with them afterwards about what you did to be effective, and what you saw that they could have done. They can then modify in the future if they choose.
Be aware, however, that not all parties want to be tested all the time. There's a significant number of players who just want to win, and the story of what happened along the way is what's important in play. For groups like that, it's best to just run modules that are intended for characters a level or two lower, and softball any very nasty dicerolling (big crits against them, for example). This insures that they are challenged, if not too far, and still feel like they are in danger, even if not too much. One or two levels difference makes a small enough difference in challenge ratings that they are unlikely to notice.
I would however, if you decide to go this route, never let the players know, or the game will lose even the appearance of danger, and that robs it of excitement.
--Seule