How to solve a system of partial differential equations?

One can get a hint of the issue by seeing that

 DSolve[{1/a D[f[a, b], a] == 1, D[f[a, b], b] == 1}, f[a, b], {a, b}]

can't be solved, but

 DSolve[{ D[f[a, b], a] == a, D[f[a, b], b] == 1}, f[a, b], {a, b}]
 (* {f[a, b] -> a^2/2 + b + C[1]}} *)

can. But there are the same system! (multiplying by a both sides of the first equation in the first case gives the second system). The first system, as written, is consistent. There is a test one can use to check the system of PDE's is consistent. Using Maple:

with(PDEtools):

eq1 := 1/a*diff(f(a,b),a) = 1:
eq2 := diff(f(a,b),b)     = 1:

ConsistencyTest({eq1,eq2});
(* true *)
dsolve({eq1,eq2},f(a,b));
(* f(a, b) = (1/2)*a^2+b+_C1 *)

May be DSolve got worried about singularity when a=0? I do not know. But noticing the above gives a hint on the solution. Simply rearrange terms so that the leading derivative term has unity as factor.

DSolve[{
  D[f[a, b, c], a] == 4 Sin[b]^2 Cos[c],
  D[f[a, b, c], b] == a 4 Cos[c] Sin[2 b],
  D[f[a, b, c], c] == -a Sin[b] 4 Sin[b] Sin[c]},
 f[a, b, c], {a, b, c}
 ]

(* {{f[a, b, c] -> C[1] + 4 a Cos[c] Sin[b]^2}} *)

By the way, there really should not be a need to do this rearrangement. Maple 17 can solve this as is

Mathematica graphics

The real question is: Why is the rearrangement needed? that is what the inquiring minds want to know :)