1.8.1, 184.108.40.206 Beta, 220.127.116.11 Beta, 1.11.1, 1.11.2, 1.11.4
(helper note: added from silentwisperer's comment)
There are actually a variety of bugs with withers when it comes to unloading them, dying and unloading the wither is what causes this invisible/immortal bug to happen.
1. Create a normal world, hard, cheats on, simulation distance 4, and whatever else you like.
2. Lower your render distance as much as you can.
3. From world spawn go about 200 blocks past the furthest thing you can see from spawn
(we want the wither to be completely unloaded, out of render distance even)
4. Once you have found a location, spawn a wither and damage it to just over half health.
5. Once the wither is slightly above half health, do `/kill @s`
6. Slowly fly back to where you summoned the wither, and you will see it have the summon animation again. Hitting it a couple times should cause it to "die" but not play the actual death animation. After this, if done correctly you should have an invisible immortal wither.
7. Summon some chickens around to have the wither target them to prove it exists.
Optional: Set an always active repeating command to do `tp @e[type=wither] ~ ~3 ~`
and you can attempt to kill the wither using what ever means you like, its truly immortal.
unable to beat the wither as he turns into invisible and the status bar despairs.