Witches are a lot like rogues; they're skill monkeys and utility casters with a fairly narrow combat niche (save or dies). You can't just throw the same problems at a witch as you would a wizard and then be upset that the witch found them too hard/easy. That would be like presenting a mechanical trap to a rogue and getting mad that he handled it more easily than a fighter would have.
One thing I never see in these threads is a suggestion to provide good alternative courses of action to witches:
-provide an avenue to circumvent or mitigate combat using skills or utility powers.
-provide a means of gaining forewarning of combat. Witches prepare spells, so they likely have a strategically appropriate spell to prepare if given the opportunity.
-give the party reliable rest time so the witch isn't paranoid about using spells per day.
-give the witch a staff. The witch spell list is broad enough that they can charge most staffs, but narrow enough that they benefit disproportionately from them (using UMD to fake that the spell is on their spell list). This also expands their precious few spells per day. Provide sufficient down time that the witch isn't paranoid about running out of charges. A Staff of Fire is a good mid-level option.
A rational squishy caster will want to use more safe and reliable strategies than getting up close risking it all with a SoD. But if you only present a witch with nails, don't be surprised if she reaches for her hammer.