This seems like a burdensome process compared to sending out your resume if you are a software engineer
You're absolutely right. In my own personal experience, it seems easier to get hired into the position you want than being promoted to the same position.
As far as why, it could be various reasons. First off they hired you at a price, and if you "promote" that means from your baseline, you're getting a wage increase. So let's say you started off at 40k per year, and in the promoted position, you earn 100k per year. From the standpoint of a company, that means they're giving you 60k more. Whereas if they hire that position at say, 90k, then gave them 10k promotion, that's better than your 60k.
While that doesn't make sense, it begins to show when new people coming in and wondering why Joe gets a 60k raise when they only got a 10k raise. It may not seem like a big deal, but it is when people begin to ask why one person in the same position is able to get so much more than the same position elsewhere in the company. It helps the company keep a plausible explanation as oppose to being put in the hotseat having to answer why Joe gets 60k raise, and Sally gets only 10k. It could backfire on them given the sensitivity of today's workforce and seemingly like they're only giving raises and promotions to a certain group of people or gender. If they simply hired someone into the position rather than promoted, it gives them a plausible explanation as to why there is a large pay gap and it also reduces the amount of wage increases they give per year.