Can any one explain why circuit privacy is needed on homomorphic encryption? I know some works have been done in the context of cirrcuit privacy on homomorphic encryption, where from an output ciphertext it does not allow 
 someone to distinguish what function is computed.

I wonder the need of this functionality. If we use a cloud server to delegate some tasks over encrypted data, then the cloud can know what kinds of function is being evaluated (possibly from binary code or cpu behavior).

And, if some specific company delegates task to the cloud server. Then the server can infer what's going on and what types of data is being processed.

In this case, circuit privacy does not make sense for me.
When we say circuit privacy, we actually mean that the distribution over the result of the computation is the same (statistically close) to the distribution over an encryption of the result. This is needed because typically the party computing the circuit has its own private input and we need to protect this. However, if you are using FHE to just offload computation to a cloud in a private manner, then you not need circuit privacy. Rather, circuit privacy is needed when multiple parties with private inputs collaborate to compute an output.