I've read the documentation https://developer.android.com/google/gcm/index.html
and the only difference I can see is that a CCS (XMPP) based server allows bi-directional communication directly between an android device and the GCM server.
Are there any other reasons why you would choose CCS (XMPP) over HTTP or vice versa?