From a statistical viewpoint, I think specialising on low-level programming would reduce the number of jobs you can apply for. However, I do think it can lead to a more rewarding career than the generic programming, partly because you get to understand how things actually work (rather than how a particular software interface works) but also because these skills are in demand.
However, you need to be aware that the closer to the hardware you get, the more you need to have some level of understanding of that hardware - instead of using a convenient software interface to debug your program, you may have to use a logic analyser, or even an oscilloscope, which can be quite intimidating at first.
So if you are thinking of this as a career option, maybe get a simple microcontroller kit, and connect it to a few sensors. Start by driving those sensors with standard library code, but then gradually replace that with your own low-level drivers, with improved or extended functionality (smaller, faster, more flexible, etc).
If you are still enthusiastic after that, then you are on the right career path.