I did not know the answer to that question so I contacted the original developer of the png coder and I got the following answer:
It only removes them when it discovers that the profile can be replaced with the sRGB chunk. If the profile represents something
other than the sRGB profile, it will be preserved, unless it is being discarded for another reason such as Strip().