The problem of SaaS is having your company data stored by someone you have to trust... So I reckon it depends on your use case: if I'm a small company who doesn't want to bother running/maintaining the service then I'm more than happy to hand it over to someone else and trust them. If I don't want to trust anyone with my data I'd rather have something simple to deploy and run myself.
The same way that having a closed client prevents you from customising it to fit your needs but can be helpful if you had no intention to do so in the first place.