I'm not saying that on-the-job experience is a bad thing-- clearly it isn't-- but as you say, it isn't always possible, and it's still a long way from creating software for you yourself to use.
Put another way: I'm not the target user of any of the most valuable (or most lucrative) software I've created-- and I don't think that's a rare condition.
Of course this isn't always possible, but it's the way to better products.