One thing that always got me about the idea of underlying phonemes, or underlying representations, is the assumption that one phoneme underlies the morpheme and not another.
Like in the example of the English plural morpheme /s/, /s/ is taken to be the underlying phomeme. What's to say that the underlying phomeme isn't /z/?
This isn't in IPA:
/socks/
/bedz/
The phones change because of assimilation with the previous phones, /k/ which is unvoiced and /s/(unvoiced), whereas /d/(voiced) and /z/(voiced).
According to
Wikipedia, underlying phoneme or underlying representation is a theoretical construct.