I mean, think about it... you already don't really have "complete control." You (presumably) didn't code your own OS from scratch in machine language... so why not? Did you code your own web-server from scratch? Your own PHP runtime? IP stack? No?
Seriously, nobody does that stuff from scratch because it takes too much time and they'd rather focus on the value they're actually trying to create, as opposed to re-creating the wheel. That said, having the ability to go down to the lowest levels of the stack does have value... when you actually need to change something to achieve your goals. Take the guys who originally built Beowulf clusters... they actually did go in and hack on network drivers and IP stacks and what-not, because they had a unique need (low latency) that required it.
Anyway, I'd say apply this by analogy to what you're doing. Focus on adding value and avoid re-inventing the wheel, unless it's just a hobby project for learning / experimentation... but reserve the right to go as low level as you need, if and when you have an actual need.