You kind of get a chicken and egg problem here. If you don't sufficiently understand something, how can you hope to identify situations in which you could apply it?
I think the more pragmatic approach is to sample from a lot of different topics. The more I read CS papers on random topics, the more I find opportunities to improve my day-to-day work by applying them. There's no way to get this payoff without expending some effort, unfortunately. Requiring that the payout be obvious before the work is put in is, IMO liable to lead to not learning and improving as fast as you otherwise could.
I make the day job part a requirement because for me to feel that I've invested my time well, I need to be able to apply my knowledge in service of some other task. Mind you, it only has to work and solve a problem once. If I never use it again in my career, that's fine.
But it's that ability to say "well, I never thought I needed to learn compilers until this one time..."