I personally made the choice, a few years ago, to focus a lot less on being a "great developer" in terms of writing the best code, and focus almost solely on "what can I actually achieve with code I write". That's why I refocused on learning new domains rather than deepen my knowledge about programming, e.g. learning ML and Data Science, instead of learning new languages or getting better at software design principles.
The end result is that, while I might never achieve mastery of software architecture or of Python or other more software development oriented things, I can effectively do new things that I had no idea how to do before.
Another example - let's say you know just Python. In choosing between learning Haskell or learning 3d programming, learning Haskell will definitely deepen your knowledge of programming, of languages, of functional programming. But, end result, you won't be able to make something qualitatively different that you couldn't make using Python. Learning 3d will allow you to make new things.
Note: I'm not saying one thing is better than the other. Different people care about different things. I'll also point out that I've been a developer for 20 years, so I hopefully achieved a pretty high level of knowledge in many purely software development ideas before branching off to learn whole new domains. :)