Not having received 完成体(不是“完成时”)表示对“现在”(应该说是“当时”)有影响.
这里的完成体实际上是过去完成时省略而成,因为receive(接到)这个动作发生在decide之前,属于过去的过去.如果不省略,这个句子就成主从复合句,即 As he hadn't received a reply, he decided to write again. (由于没有接到回信,他决定再写一次信)
完成体中的动作发生在谓语动词的时间之前.I'm sorry to have kept you waiting 中的keep就发生在am这个动作之前.
being ill的动作be也发生在谓语动词didn't go之前,所以可以变为 having been ill (因为已经生病了).变成主从复合句,即 As she had been ill, she didn't go to school.
但是,这个时间先后并不明确,因为be是状态动词,发生和结束的时间很难确定.因此直接用being就好了.