If you go up to despawn everyone, then down so they can spawn in their hut.. won't the hut max out at the 70 hostile mobs allowed? Go down and kill them, rinse repeat. With a Soulstealer 5 sword you'd only need 3 trips or so? Just theorycrafting, unsure as to how all the mechanics work.
It might work, but I'm pretty sure a lot of witches will despawn as well. At more than 32 blocks away they can despawn randomly, but even if you need 10 trips or something it's probably still faster than filling/clearing all the caves.
Stacking up high isn't hard to do so this would definitely be worth a try I think. If it doesn't work you find out fast enough.
You could setup a mobavator and stay close enough for them to move. It's just the couple chunks you have to light up then and not the whole neighbourhood. Or light up / fill all the caves everywhere. Whichever seems like the easiest solution to you.
Last time I checked you can only be 32 blocks away, or something like that. That is nowhere near enough to put a dent in the amount of caves you need to deal with, if you're going for 100% that is. I checked it with a sphere in MCEdit for my vanilla world (to determine if I could reduce caving needs by going up above my spawn pads) and it really didn't matter much. Only the deepest caves around the edge chunks you can skip by doing so, which is probably less than 5% of all the caves and the surface you need to deal with.
You guys might want to check out this wiki page:
http://www.minecraftwiki.net/wiki/Spawn
Lots of good info on the spawning mechanics and witches are no different, except they're limited to a small area.
That said though, if you're doing this to get a witch spawner I would just fill up caves till I get a decent spawn rate. Which you can already have with only a few large caves largely lit up. I think it's just a waste of time to deal with every single cave if you're only going to use the thing temporarily.