Ah, that's a good point. Yes, doing that would have been the better solution. If you can do that consistently, great!
LiveData still is bound the the Android lifecycle. IMO, Repositories should never come in contact with the Android lifecycle, and having LiveData touch that, it's a violation.
The quick fix definitely is super messy and ugly - but it's just a less sophisticated version of ComputableLiveData.
Applying any other fix would have meant spending a huge amount of time in the codebase we were facing, so it wasn't an option. If you have only a few usages, that should be a lot easier to migrate.
I'll post about migrating away from LiveData to Flow next week - it uses the liveData builder blocks to provide a bridge to old code and make sure that all execution contexts are explicit and in the right place.