I've been developing for Drupal for many years now (about 8),
but it was only for the first year that I used it with my own projects.
Afterwards I only used Drupal when clients demanded it.
Why did I never choose Drupal for my own projects?
Because when a choice was given,
I had no reason to use it - I can code.
A good example for why using Drupal might be
completely redundant for a coder is the Views module.
This module helps you create lists of content (FROM) with filters (WHERE), selecting specific fields (SELECT), you can sort (ORDER BY), add relationships (JOIN), and do a lot more.
Basically, this is a front end solution for SQL queries, it allows you almost anything that SQL allows, without knowing how to write the query itself (which might be easier to understand).
Whenever I had to give time assessments for Drupal, it was usually a 50% wrong.
Why is that? A time assessment would usually include big new components related to the client's needs. In order to test those components I would have to work for 2-3 days to simulate a similar environment and test them - time that I do not have.
So I trust that mature components for the right version of Drupal would work as they should - but they (very) often don't.
Making the components work and do what they are supposed to do, would take longer than writing them myself, but hey, they have a comfortable admin panel for the client, right?
1. Admin panels are fairly easy to build, and can be generated with some frameworks (e.g. Yii)
2. Changing existing interface (especially forms) in Drupal could prove to be a very unpleasant experience, to say the least.
Drupal can be a nice tool for a content filled website with a bunch of different user roles and user access options, but not much more.
The allure of getting a ready-to-use system in a few minutes shouldn't make you think it's as easy to build upon as it is to install - far from it.
It is especially difficult to find the right workflow when working with a team on a Drupal project.
Features is a nice & handy module for a some cases, but it's insufficient, especially if you're use to just merging branches (or pull) and have everything just work.
At the end of the day, Drupal never saved me time, and usually left me dealing with a lot of admin user interface work,, and not much coding.
This means I wasn't utilizing my skills as a developer, but was turned into a Site Administrator, and that’s not my major field of expertise.