The difference between the two functions is the heap used to allocate memory
gUtils_heapMemHandle[UTILS_MEM_VID_BITS_BUF_HEAP] is placed in cacheable memory region
gUtils_heapMemHandle[UTILS_MEM_VID_FRAME_BUF_HEAP] is placed in non-cacheable memory region
hence Utils_memAllocCached allocates from UTILS_MEM_VID_BITS_BUF_HEAP.
I don't have idea about the IPNC RDK analytics issue you mentioned sorry.