There is no language where these fusions are absent altogether. But you have sensibly picked a Slavic language where the diversity of different cases is sort of maximized.
I am a Czech speaker, not a Serbo-Croatian one, and I couldn't find a clear proof that your declension of Zdenka is incorrect on a page of Serbo-Croatian grammar. But the claim that the feminime Zdenka has the instrumental "Zdenkom" as well sounds highly surprising to me if I don't say implausible.
They organize their declension classes very differently than Czech but at the end, their words sound "reasonable" to our ears. And "Zdenkom" simply sounds masculine and it is hard to imagine that they use the same form for a feminime name.
In Czech declension, this particular problem surely doesn't arise. We have the masculine and feminime names Zdeněk and Zdeňka (nominatives), respectively. (A grandmother and her late husband from my broader family had these twin names.) The instrumentals are Zdeňkem and Zdeňkou, respectively (templates: pán [masculine animate, Sir], žena [female, woman]). I would expect the feminime suffix in Croatian to be "-ju" or something like that. Perhaps Zdenkoju? But you must be right.
A name similar to Vito is Vít (or Vítězslav), informally Víťa, the accusative is Víta, Vítězslava (template: pán again for both), Víťu (template: předseda [masculine animate, chairman]). A feminime name doesn't exist but it could be Víta but the accusative would be Vítu, not quite the same as any of the previous ones. It's usually guaranteed that the masculine and feminime names aren't the same – and if they sound the same, it's often "deliberate".
Like the Serbo-Croatian ones, Czech nouns recognize declension in 7 cases, nominative, genitive, dative, accusative, vocative, locative, and instrumental – which is unusually close to our Latin roots (there is a difference; among the 7 cases in both languages, the Latin ablative is replaced by the Czech – and similarly Polish – instrumental). Vocative (a special case used while calling someone) is alive in Czech and only a few other languages in the world. We call: Baracku! Obamo! Havle! Francisi! Fiorino! And so on.
Our children don't learn the Latin names of the cases. Instead, we call them "Who/what", "From whom/what", "To whom/what", "whom/what", "we're calling, we're screaming", "about whom/what", "with whom/what". These translations sound better in Czech because pronouns such as "whom/what" undergo declension, too. At any rate, prepositions are linked with cases.
Not all the 7 cases are always different, but that's a part of the design because certain cases can't be confused too easily. Quite generally, the genitive and accusative are the same rather often; and the dative and locative are the same often, too. The vocative may coincide with the nominative if no natural variation exists (and for many truly exotic names – but as I have mentioned, we do use inequivalent vocatives even for foreign names; and we also create the feminime versions of the names, so for example, a presidential candidate is named Hillary Clintonová).
Note that the German declension only has four cases. The original seven ones in Latin have been largely "unified" along similar lines as the similarities discussed in the previous paragraphs suggest.
Quite generally, we almost never face any confusions of this sort in Czech. But that doesn't mean that all the cases are different. The accusative of a masculine word may often be the same as the dative of a feminime word, and so on. For example, the feminime nominative name Zdeňka is also the accusative and genitive of Zdeněk while the nominativ masculine Zdeněk is also the form of the plural genitive feminime, (several/několik) Zdeněk. But it's very difficult to construct sentences where it could lead to confusions. With this declension system, the order of the world becomes rather arbitrary – although different orders do try to convey slightly different meanings.
For example, the last word may often be what we emphasize. I made the sandwich for you (Udělal jsem ti sandvič). In Czech, one may say it in this way, and "for you" is the main message – it is you who was happy to be made this sandwich. Or: Made the sandwich for you I. (It is me who should be celebrated for preparing the sandwich.) Or: Made for you the sandwich. (Out of the things that I could do for you, I chose the sandwich.)
Also, the declension removes some prepositions relatively to English. Give something "to someone" is expressed as a simple dative of "someone", without any "to", and the instrumental may similarly represent the English words "by someone" while the genitive is also used as "someone's".
On the other hand, many prepositions still survive and they're unavoidable (it's clear that nontrivial if not very complex prepositions meaning "through" and "across" and "underneath" and many others can't be modeled by simple cases in the declension system, we would need dozens of cases in that case). So for example, "make me a sandwich" is "udělej mi/mně sandvič" (or "udělej sandvič pro mě", pro=for) while you need to say "udělej ze mě sandvič" if you want the sandwich to be made out of you ("z/ze" is "out" or "from"). The preposition guarantees that confusions are avoided here. But even without it, there could be no confusion in the written form of "mě" and "mně" because it's spelled differently (genitive=accusative and dative=locative of "I", "já", respectively). But "mě" and "mně" is actually pronounced exactly the same (this is a true exception that two differently spelled words are pronounced the same – if we don't count the example where -d and -t is pronounced the same etc.). But again, it's largely the prepositions that guarantee the absence of real confusions.
I believe that the dogma that the last vowel is never cutoff and modified in the declension rule is absolutely unrealistic in natural languages, and if that's a rule obeyed by Esperanto, it's a way to see that it's an artificial language. Declension naturally is supposed to change the ending. The other cases aside from the nominative are supposed to be pretty much equally long as the nominative. The word "declension" and its Czech counterparts mean something like "bending", "tilting" – so the length should be the same, just the "direction" (chosen vowel at the end etc.) should vary depending on the case. If there is a general rule saying that all the other cases are longer, there is almost no advantage of this system in comparison with a proposition (or some post-position) for everything instead of the cases.