You are of course right with the aspect that doing more complex texturing and lighting can get done better with using shaders. I absolutely agree. No question about it.
But the problem lies in the definition of “easier.”
I’d say that it is not exactly “easier” to do proper lighting and texturing using shader, it rather is for the first time at all finally possible to do that with shaders properly, which was not at all the case with the FFP and its horrible API when it comes to combine textures, because it was…, well…, “fixed” in functionality and only could do Gouraud.
And everything new on top of that was done with lots and lots of state in that huge state machine called the OpenGL context. That was horrible. Absolutely. The FFP was very limited. But easy when you did not need anything more complex.
Now the hard work with using shaders begins with that you need to comprehend shaders. How they work. What their execution model is.
How to connect the vertex specification stage of the OpenGL API to the input variables of a vertex shader. What uniform variables are and how they work. How to transform vertices in the vertex shader with matrices. It now becomes more apparent what coordinate systems are and how to transform from one to the other. You also need to know what interpolated variables are and how those variables get interpolated between the vertex and fragment stages. What a sampler2D is and that it correlates with a texture unit. Then, how to actually do proper lighting and shading? Then, how to connect the output variables of a fragment shader to the framebuffer attachments (okay glFragColor is pretty simple).
In short: You need to learn a whole lot new concepts that you didn’t need to before, because now that simple glEnable(GL_TEXTURE_2D) and glColor3f() won’t cut it anymore when wanting to draw a simple texture and have colors. No, now you even need to program in a new language (GLSL) and know about shading and lighting models. Whether learning all this is worthwhile has to be decided by everyone on their own.
For me personally of course it is, because I like learning it and playing around with it, really. But just because I like it, doesn’t mean I should propose/advice it to others.
The FFP was simpler but in the end of course stiff and inflexible when wanting to get away from simple Gouraud shading with one diffuse texture and finally do Phong and whole lot of new areas of computing for the first time with shaders.
That fact just lies in the nature of every abstraction: Loss of flexibility and also oftentimes worse performance.
With the FFP you also did not get to know how things work in more detail, and everything was hidden behind a more or less awkward interface. But the question remains: Do you actually need to know when developing a simple game? Do you need to become a master of OpenGL just to draw a single textured and colored something? Do you need the potentially powerful toolset of OpenGL and shaders to render your game? And do we want to recommend new developers to go this route?
Those are the only questions at least I want that we ask everyone who asks about what rendering technique they should use for their Minecraft clones. 
Hence also @Riven’s advice to use a game engine or any other such good libraries that simplify the lifes of game developers a lot.
You get a deeper understanding of everything with shaders, yes, just like you will get a deeper understanding of OpenGL and about the hardware when using Vulkan.
Sorry, somehow I wanted to get that down. 