Pre-shuffling is something I do as often as possible. I do this even when my opponent might play a Witch, or Militia, or any of the other possible situations. It is always worth saving some if possible. No one wants to sit and watch people shuffle all night... we want to play Dominion.
Worst case scenario, something happens that changes your discard, and... Oh No!... you have to shuffle some more. The only thing you lost was some time when you could have been sitting there watching your opponents turn while not shuffling.
Sure, you need to be careful with inexperienced players, and make sure they know what the proper timing of shuffles are so they don't inadvertently break the rules, but when everyone knows what they are doing, you might as well speed things along.
There is an argument in here somewhere that your opponent should have vision of the top card of your discard or something, but I am willing to sacrifice that piece of information to speed things along a bit.
Yes, this is how I've always been playing Dominion. I'll pre-shuffle when I know that cards will need to be drawn.
Simplest scenario: I conclude my turn and draw five cards. There is one card left in the deck. I have a Smithy in hand. I will immediately shuffle my discard pile and keep on shuffling until it's my turn. If someone plays Militia or Witch along the way, then I add those cards to my discard and keep on shuffling. On my turn, I put that under my one card and resume my play.
I don't see why that would be a big deal, and it benefits my score not at all, so calling it cheating is really strange.
The only issue with that scenario is that it telegraphs to the rest of the group that I have a Smithy in my hand. Unless I'm trying to be sneaky, I don't mind that one bit.