1. For component usage and in this case only restricted. You can only style the top layer of a component, not each part.
But for component development, tailwind made it complex, e.g. if you want to make it possible to set / add custom styles to each sub-element.
2. Vanilla CSS too.
3. For designers with individual styling of components Tailwind is great, but not for app where elements have the same style or developed at component level.