Are you sure about this? My understanding is that the result of CopyPalette is unspecified when your pixel format is not an indexed color format (in this case, a grayscale format).
So, while it's not really a problem to do that (unless a program relies on the exact behavior of this decoder, which seems unlikely), for correctness you shouldn't ever be relying on this change.