Code uses m_service unconditionally in many branches, it is exposed as
public API. Given KService is a data class with an isValid method, it's
clearer to ensure that KService::Ptr always returns a valid object which
in turn can then be valid rather than having two paths for the same
goal.
This can be relevant in a situation where an entry using the "preferred"
schema references an entry that doesn't exist.
BUG: 423524