Openstack instances once powered off do not release CPU , Memory resources

It is normal behavior. If the CPU or Memory resources were released, there would be no guarantee that you could power the instance on again. (What if the resources had been allocated to other instances, and you couldn't shut them down?)

If you want to release an instance's resources (apart from its IP addresses) without totally destroying it, consider shelving it.