If you have zero souls and need one, the game will provide a dragon conveniently to give you the soul. In that case Miraak won't steal it from you. If you have more souls when you need them, then Miraak will steal them, since you don't need it.
My Imperial had so many dragonsouls in reserve, he scarcely cared. There's just so many words of power, and only a couple of perk trees he wanted to reset.
Interesting. At one point I *had to* unlock a certain Shout to be able to continue on with the MQ. I had no souls and, due to where I was standing, one couldn't just magically come to me. So I just used the console to add one and unlock the Shout. It was either that or reload to before I entered that realm and try and find one dragon. At the time I didn't know the game would provide one. I know for next time
For the second part (of the quoted post), that did happen to me at least. I had no shouts to unlock and had about 3 souls already so didn't need it. That didn't bother me. He only stole one in my entire time there.
You can also learn as many shouts as you want before doing the dragonborn dlc. You will more then enough dragon souls and it won't matter if he absorbs the dragon soul. Mirrak usually dosen't absorb the dragon soul until you cleanse the stones and free the people from him.
My one character who actually completed dragonborn had plenty of souls to spare, Miraak turned up and stole one which looked suspiciously scripted and he never bothered after that. And the three odd dragons on the island keep giving souls, they never seem to run out.