Failing CA on service has some disadvantages.
1) we need to decide what to do with SERVICE_STATUS on failure - leave untouched? set to empty? declare 'undefined'? Any approach may lead to hard to detect mistakes in installer if CE return is ignored.
2) We MUST pair this call with Service_Exists call for reliable installer, conditioning Service_GetStatus invocation with results of existence checking, as well as usage of SERVICE_STATUS (which may be undefined). That may seriously increase installer logic complexity, providing more room for mistakes.

I believe that reliability, predictability of output and simplicity of use is very important.
And you still may combine this action with Service_Exists if you wish or need.

>> If you ask a service that doesn't exist: "what's your status", I expect to get back "service doesn't exist"
And you get it - 'Absent' as service status