requires way more time, way more examples, way more code written.
I believe that in order to be "somewhat decent" at leetcode (not top level competitor)
you just need to learn theory, techniques, tricks and get some practice.
Meanwhile in order to get better at system modeling you need to model a lot of systems from scratch, change them and see how your initial design supported that refactor part
You need to be aware of various approaches / architectures, yada yada
And generally spend a lot of time thinking about how it'll affect readability or easiness to get into the project for new ppl, scalability, extensibility, etc.
So, in generally I believe that leetcode is just learn theory, practice everything you learned and go ahead and do 50 / 100 tasks
If you fail, then you can check answers and learn from them
meanwhile there are no correct answers for system modeling.
Additionally for leetcode you have sets with tasks to practice, meanwhile the "real" system modeling experience comes from real projects where requirements are being thrown and changed by somebody else whenever he/she wants
____________
>I don't know how one can study leetcode and fail to learn to program better.
I don't see how even hundreds of hours on leetcode would make you better at OOP, system modeling, building abstractions.