The alternation between /s/ and /z/ in word pairs like that isn't caused by any major part of how modern English works. Instead, it's a fairly restricted phenomenon that shows up because of historical sound changes.

In both French (a major source of Latin-based English words) and English, there have been sound changes turning the sound [s] between vowels into its voiced equivalent [z].

These sound changes contributed to a minor pattern where /s/ at the start of some Latin-based verbs corresponds to /z/ in verbs starting with an unstressed Latin prefix that ends in a vowel. Some prefixes that are found in words like this: *re- pre-, de-* (e.g. *reserve, resign, preserve, deserve, design* with /z/ vs *serve* and *sign* with /s). 

However, when *re-* is used **as an English prefix,** with the specific meaning "again", it has secondary stress and it doesn't turn a following /s/ sound into /z/. So "re-sign", in the sense "sign again", is pronounced [ˌriˈsaın], unlike *resign* "quit" which is pronounced [rɪˈzaın] or [rəˈzaın].

The same alternation between [z] after an unstressed vowel-final prefix and [s] elsewhere applies to some roots that aren't used without a prefix in English, like *-sume* with /z/ in *resume, presume* vs. /s/ in *assume, consume.*

In the case of *-solve,* the /z/ pronunciation also happens to be used in the word *dissolve,* even though *dis-* is not strictly speaking a vowel-final Latin prefix. That's not as predictable. The distribution of /s/ and /z/ in words spelled with the letter "s" has been somewhat variable over time, and can also vary between speakers. Some irregularities exist and some words have been affected by the process of analogy. (Another irregularity: I use /bz/ in *observe,* but /bs/ in *obsess, subsist, subsume,* and *subside,* even though all of these words are composed of a Latin prefix ending in the letter "b" and a base starting with the letter "s".)