There is no bug here. it looks like all 3 channel images are converted into 4channel in oclMat.
see cv::ocl::oclMat::upload(const Mat &m) for example
convert_C3C4(temp, *this); is called for 3 channels. I suppose that this is conversion from 3C->4C
is it right?