Sharepoint IS a huge mess.
- The generated mark up is the worst I have ever seen.
- It has equally bad CSS to go a long with that mark up.
- God have mercy on the soul that has to restyle or extend the client side functionality of a sharepoint application.
- The entire platform flies in the face of good architectural design.
- Data Integrity is a huge problem with the platform, as there are no transactions.
- The API is surprisingly bug infested and it won't take an hour after working with the API to run into bugs that will have you scouring the web and further exacerbating data integrity problems.
- Proper unit testing is very difficult to do on the platform.
- The platform is big and is cram packed with "everything", however everything Sharepoint does it does poorly. You could easily find other frameworks or platforms which do the job better and would be a much neater fit to your or your client's requirements.
- The learning curve is steep, which would be fine if the documentation for the platform (especially the API) was any good.
- Browser compatibility, Sharepoint is IE only (attributed to its horrendous markup, CSS and javascript).
It has to be said, the platform makes money, but more as a money making scheme. Developer skills in Sharepoint are rare and people with those skills are paid well. Clients pay through their teeth for Sharepoint custom dev and development houses as a result do their best to convince their clients that Sharepoint is the perfect fit for everything.
My opinion, Sharepoint is not a development platform, but a money making platform.
Edit: I also forgot to add 11. Its a resource pig like nothing you've ever seen before.