Pues el por que consume tanta bateria en 3G (en las ROM de Cyanogenmod y MIUI) tiene diversos motivos (aparte de que el 3G ya de por si consume más):
1.- La cobertura de 3G y HSDPA/HSUPA es menor que la de 2G (EDGE y GPRS), con lo cual estará buscando mejores redes más a menudo y necesitará mayor potencia.
2.- Relacionado con 1: cuando no encuentra cobertura 3G, cambia y pasa a buscar cobertura 2G. Estos "cambios" de modo de red consumen más batería de la que os podeis pensar (yo vivo en una zona con limite de cobertura 3G a 2G, y se nota si lo dejo en 3G como drena, no siendo tan exagerado en la ciudad donde hay mucha mas cobertura 3G)
3.- Y aqui la explicacion más "técnica": el movil tiene dos partes que interactuan con las redes: La radio (o modem) y el RIL (Radio Interface Layer).
El modem se encarga de las conexiones del movil, y el RIL es una capa intermedia que colabora con la comunicacion entre el movil y las redes de telefonia.
El grupo Cyanogenmod escribe y porta los drivers para hacerlos Open-Source (es decir, codigo libre), pero el problema es que el RIL que han podido escribir/portar para el tema de las conexiones 3G (es propietario, es decir, de codigo cerrado) no es tan eficiente como el original de Samsung.
Hay que tener en cuenta que es un driver muy complicado de portar, y desde luego hay que agradecer que podamos utilizar 3G en las ROMs de Cyanogenmod, aunque a cambio de utilizar ese RIL que necesita mas consumo de bateria.
Espero haberlo aclarado