С точки зрения читабельности предпочтительны отдельные атрибуты.
Подумайте о случае, когда вы передаете некоторый тип параметра
[Foo(typeof(int)), Bar(typeof(decimal), MessageTemplate="Bar")]
против
[Foo(typeof(int))]
[Bar(typeof(decimal), MessageTemplate="Bar")]
Я бы также поспорил, если бы вы могли объединить их в один, они должны быть одним тегом.