I like forall because it has a simpler syntactic structure, or rather, it reuses the complexity that’s already in the syntax of terms, and in the end it doesn’t look really different from the other style:
I avoid forall when possible, even in lemmas: Lemma foo {A} (a: A) : a = a. Proof. easy. Qed., because it’s terser, and Coq’s already pretty verbose for my Haskeller habits.
For me it would depend. If I’m describing a simple type and want to give names to the constructors for them to become clearer I would go with the first… almost. I wouldn’t ascribe the type as it is redundant in that case: