You're true that -д- disappears from the end of the root in some cases:
Never-the-less this doesn't relate to видати/видіти/винуватити. In видати "to give out", that д is not the last letter of the root, but actually the first letter of the root (e.g. давати, дати, видати, задати, надати, подати, etc). In видіти "to see" (not so often used word), that д is really the last letter of the root, but it never falls out (or at least I can't remember any cases when it does: вид, видіти, завидки, виднота, видимість, etc.). Винуватити "to blame" is derived from вина "fault/guilt", this root never has д (вина, винний, завинити, винуватити, винуватий, провина, повинність).
Вибачити "to forgive" and пробачити (the same meaning) are really etymologically related to бачити "to see" (there is even a separate question for that) — they have common root and origin. However for a modern Ukrainian speaker these words don't seem to be related (just their modern meanings "to see" and "to forgive" are so distant, that without relying onto etymological dictionary not so much people can say for sure whether these words were really related somehow ages ago or just they sound similarly due to some non-relationship-caused coincidence).