I don't think there's a proper way, ultimately its whatever works for you.
I do actually have 1 playbook per cluster type, but I have quite 'tall' software stacks (lots of steps to configure each cluster) and then I use external tools such as jenkins or gnu parallels to run multiple playbooks simultaneously (which I can do as typically I don't 'double-up' and have hosts function as more than one type of cluster member).
I think I probably wouldn't do that if I had simpler clusters which didn't need so many tasks applied to them to ensure they are properly configured.
If you often need to build all your cluster types at once then maybe having multiple playbooks would work for you.
I'd definitely recommend pushing down any complexity into roles (and even into multiple tasks files within roles) as this lets you re-use roles in your playbooks.
Hope this helps,
Jon