Personaly I, when I think about Extrude, think of faces/edges to be extruded along same local vector each, just like it happens in Maya now. Everything's nice.. untill I turn keepFacesTogether ON.
Take for example 2 neighbouring faces of polyCube, that share same edge and extrude them.. In mind I expect to have resulting faces to be PARALEL to their source faces. Yes - Maya extrudes by edge lenght, but most of cases it is unnecesary and require additional ( often manual and thus tedios ) corrections. Why don't just have another switch to choose which method user wants faces to be extruded - current or paralel.
I miss this, because current extrude makes results unpredictable on creases and folds, besides if I expect faces to be extruded by some precise amount, then in resulting mesh is not true - connected edges have this lenght, but face itself gets less offset. More than this - its normal gets modified, which means I should do alignment ops for EACH face just to perform next normal-based op. Isn't that ridiculous and slow?
I cannot imagina another workflow, because even moveComponent is based on same principle. Also mergeEdges of exturded keep-separated faces at end will give the same result. Did I miss something? Some magic slider or checkbox?