The code below should demonstrate this for libraries that have clock gates. The simulation results will be the same and Formal Verification will prove both of these identical. However the first one will likely use less power and less area.
//Instances 1 clock gate
reg [7:0] value;
always @(posedge i_clk)
if(enable)
value <= new_value;
//Instances 8 muxes
always @(posedge i_clk)
if(enable)
value <= new_value;
else //Exhaustive so assignment always occurs
value <= value;
The first example will use a single clock gate for the clock into all eight DFFs. The second example will use 8 muxes looping back the output from each DFF to it's input. Depending on the area and power ratio of clock gates to muxes, the differences can be significant. This was tested on Talus.
Of course the else clause in the second example is useless but the point of the experiment was to see how well the tool handled complex casez/x statements and shared enables across always blocks. For FSMs, I would lean towards syntax doesn't matter as long as the FSM is detected. I base this on how XST handles them and that state machine optimization is a very mature topic.