In Pd's help files, it suggests table switching with [tabosc4~] to avoid rewriting tables.
I think the help file is simply wrong about this.
AFAIK click-free wavetable switching will require a crossfade, full stop. That is, your workaround isn't a workaround -- it's just the right way to do it.
I can easily reproduce clicks using the help patch's example -- so the help patch itself doesn't even "work" in this sense.
Is there a way to make the table switch happen when the index of the table is at 0 where both tables have the same value (i.e. 0?)
Basically, no. Control messages such as "set" are evaluated only at control block boundaries (default 64 samples). To guarantee that you're switching at the beginning of the wavetable cycle, you would have to be sure that you are at the beginning of the cycle for every control block. That would require a wavelength that is an integer multiple of the block size, which is extremely unlikely condition to satisfy.