Why two independent if-loops are always put in different always/process blocks?
There's nothing wrong with the second style unless it is taken to excess. 

If the functionality of Q1 and Q2 are closely related, I would prefer the single process. Chasing intermediate signals between hundreds of tiny processes only obscures the design.

And I have never seen a synthesis tool that can't generate optimal hardware from it either.