This subject was touched on tangentially in the answers to this question.
Voice assimilation in French is normally regressive, that is, determined by the last consonant in a cluster, at least as long as it only involves stops (/k, t, p, g, d, b/) or fricatives (/ʃ, s, f, ʒ, z, v/).
This means "absurde" is pronounced closer to "apsurde" and "cette vache" closer to "ced vache".
There is no particular reason for voice assimilation to be regressive by default in French, although it is the more common direction, crosslinguistically, for default rules. Progressive voicing assimilation tends to be restricted to certain phonemes (for example, Polish normally exhibits regressive assimilation like French, but the fricative /ʐ/ behaves differently: wstrząs /vstʐɔ̃s/ surfaces as [fstʂɔw̃s] with the whole initial cluster assimilating to /t/ rather to /ʐ/, *[vzdʐɔw̃s]) or to certain morphemes (the English plural s is usally /z/, but assimilates to a previous consonant so that cats is /kæts/ and not /kædz/).
Knowing this, that "Je sais" be pronounced with an inital /ʃs/ cluster (really /ʃ:/ or /ʃ/ usually) is unsurprising.
What's more puzzling is that cheval ends up pronounced "ch'fal" instead of the expected "j'val". Walker tries to account for it by positing a rule by which initial clusters always default to voiceless, but this seems dubious: other consonant clusters don't show this assimilation, even initially ("ce veau" is [zvo], not *[sfo] and "tu vois" occasionally contracts to [dvwa], not to *[tfʍa]) and word internal /ʃv/ clusters have the same behaviour as "cheval", even across syllable boundaries: échevin /eʃ.vɛ̃/ [e:ʃfɐ̃], achever /aʃ.ve/ [aʃ.fe].
A simpler explanation is that /ʃv/ clusters assimilate progressively for an unknown reason. This behaviour is only one or two centuries old (cheval -> j'val -> joual in Canadian French shows the old, expected behaviour) and might progress, disappear, or remain an idiosyncrasy of this particular cluster, and no other.