When running jobs involving multiple tools, you only have to adjust Z zero (be it manually or using the BitSetter) between runs . Actually, as you found out, you shouldn’t re-zero X and Y for the exact reason you mentioned: due to a number of (very small) of inaccuracies in the zeroing process, you can end up shifting your X/Y a bit, so that can be counter-productive. The one exception is if you know for a fact that you lost X/Y steps during the previous job, and need to get rid of the error induced that that skip. But that should be a rare event.
Absolutely, this is the intended use. With a BitSetter installed, the machine will prompt you when the time comes for a tool change, and then it will proceed to move to the BitSetter and probe the new tool length automatically for you.
I am not aware of one that would involve both. But the same question came up recently in another thread, so you may be interested in reading that thread, hopefully it will shed some light on the matter: