nope, that bug never came into the picture, our handling of both zombification and mind control are completely different.
in vanilla, there was one byte allocated to "faction" which was either 0 (xcom), 1 (alien) or 2(civilian) and one bit allocated to "mind controlled"
at the end of the turn, if the "mind controlled" bit is set, it flips the faction between 0 and 1, treating any non-zero value as 1. this is how MCed civilians turn hostile.
because of the way the unitref/unitpos table worked in the original, units that were zombified overwrote the data of the unit they were replacing, this was due to the limit on the number of units that could exist on the battlescape. importantly, when they overwrote the data, they didn't overwrite ALL of it. this meant that the zombie would contain a reference to the geoscape soldier, as well as some other "vestigial" data.
if the zombie is then mind controlled and killed, the "mind controlled" bit would remain, but the faction would be overwritten, meaning at the end of the turn, it would switch back to the player's side (permanently)
at the end of the battle, when all the units were tallied, if it was alive, not mind controlled, of the player faction, and had a reference to a geoscape soldier, how could the code NOT think the soldier was alive and well?
comparitively, in openxcom:
we store a byte for "originalFaction" and another for "currentFaction", and treat any difference between the two as our "mind controlled" flag. this means that any unit mind controlled by anyone will always revert to its original faction, eliminating the hostile civilian issue.
we don't use the unitref/unitpos table concept at all. when a unit is zombified, we kill the old unit and create a new one from scratch. the original unit stays present and "complete" in the data, although it no longer has a physical presence on the battlefield.
at the end of the battle, when tallying units, the first thing we sort them by is the "originalFaction" and figure things out from there. all the units are still present in the save data, so everyone gets handled properly.