To be fair, the s in caso would be pronounced /z/ in a lot of romance languages, including french and latin (because it's between two vowels).
It's different in italian and spanish. In those two languages, it's a /z/ before voiced consonants and /s/ before unvoiced consonants.
Before a vowel, in spanish it's always /s/.
But in italian, it's a /z/ before a vowel SOME of the time.
lasagne = /z/
caso = /s/
It's case-by-case, and the poor^W man probably mixed the rules between french/latin/italian moreso than the spanish rules.