My .02 for what it's worth...
I've never liked Visualforce development. It always felt like either I was wrestling with it to do what I wanted, or that I was faced with using it just as a wrapper for something based on Javascript, React, etc (which I don't know). And if I was going to use it just as a wrapper, I'd rather let dedicated UI and presentation folks write that part and just use APIs I'd write to pass data back and forth.
At Dreamforce 2015, there was a major push for Lightning but it was all new to me. It was overwhelming because I'm not a HTML, CSS, Javascript, etc, person and I didn't see any mature examples of what Lightning Components could do. At Dreamforce 2016, I attended nothing but Lightning sessions so I could wrap my head around what this thing is, and this year could see more mature examples of how everything worked. Everything "clicked" for me.
Now, I've started playing around with it and even though I don't have HTML, CSS, or Javascript skills, I'm slowly starting to figure things out and so far I really like it, and am taking baby steps piecing some components together to see what they can do.
One thing that's a major factor for me is that I work at a small startup and my main customer is a Support team made up of only 4 people, and I have a really good understanding of their workflows. They've been using a Service Cloud console up until now, and while it's usable, they could be a lot more efficient with a custom case management system.
I would never have tackled such a thing with Visualforce (either native or as a wrapper) but with Lightning, I'm really feeling like we can develop exactly what we need, use native Salesforce technologies, and explore mobile options for case management down the road.
Maybe frameworks like React, etc, are better in some way, but I wouldn't know because I don't know those frameworks. But just in my short time working with Lightning, my gut instinct is that it just "feels" right. I can learn it, make it do what I want, and develop a great solution using it for our Support team.
And from a maintenance aspect, there's a lot of appeal for using native Salesforce technologies because down the road if we hire additional Salesforce developers, we don't have to worry so much about finding people skilled in both Salesforce and React/etc, but can concentrate on finding somebody really good at Salesfroce development in general and they could probably pick up on Lightning pretty quickly if they don't already know it (like I am today).