There is no strict rule about APS Ack on ZigBee standard. But I think the APS-Ack should be enabled when these condition.
1, The ZPD Response command should enable APS-Ack. Because the ZDP Response command is sent by system, and application could not control it. But application can generate any ZDP Request Command, also can receive ZDP Response command. When ZDP Request Command is lost, the application can't receive ZDP Response command.
2, The ZCL Command which has disabled ZCL-default-response should enable APS-ack. Such as all the ZCL-general-response-command should disabled ZCL-default-response and enable APS-Ack. Because ZCL-Response is sent by ZCL-processing which can't be controlled by application. But ZCL-Request is sent by application, so application can receives ZCL-Response instead of APS-Ack.
3,The ZCL Reporting is controlled by BDB, so BDB should offer a callback to application to detect the ZCL-default-response or APS-ack.