из опыта. catchError должен быть в конечной точки по вашим вызовам. исключение составляет, если вы какие-то там логи пишите или надо действительно в http вызове как-то отлавливать ошибку. но правильнее давать решать потребителям вашего сервиса решать, что делать в случае ошибки, а не решать за них, поэтому все catchError всегда в конечном пункте вызова