Из документации Single :
Single - это нечто вроде Observable, но вместо того, чтобы выдавать серию значений - от нуля вообще до бесконечного числа - он всегда либо выдает одно значение, либо уведомление об ошибке.
Это определение в точности соответствует случаю вызовов API. Использование Single лучше документирует назначение вызовов API.
Я использовал Single в качестве возвращаемого типа интерфейсов Retrofit API в нескольких проектах, и его было очень удобно и просто использовать.
Я обычно сочиняю Single с преобразователем, который преобразует ошибки соединения и ответы об ошибках в соответствующие исключения уровня домена.
Если по какой-то причине вам нужен Наблюдаемый, а не Одиночный, вы все равно можете конвертировать его.