I get that in the cyrillic alphabet, 'x' is the 'h' character, but once you transliterate to a latin alphabet, it makes no sense to use it in that way...
Especially when the role of 'h' in latin alphabets has been hard-to-soft conversion specifically in most languages (and transliterations) using it.
Slovio is from 1999 and peaked in 2001. The thinking was probably based on lower rates of acceptance of Unicode. Today "any" device can display ž, without changing languages or "code pages" or whatever, so there is much less of a need to encode that in ASCII zx. You can pop ž into an e-mail without worrying that it will be mojibake on the other end.
'x' is just intended as a generic character I think. Its use in digraphs is straight from Esperanto. You're right that canonically it connotes "harshness" as opposed to "softness", but clear alternatives are kinda lacking and it's better than nothing.
I get that in the cyrillic alphabet, 'x' is the 'h' character, but once you transliterate to a latin alphabet, it makes no sense to use it in that way...
Especially when the role of 'h' in latin alphabets has been hard-to-soft conversion specifically in most languages (and transliterations) using it.