1. You do not need a degree - This puts more pressure on the developers who are employed, now they've to face pressure from uncredentialed people who for some reason fell in love with the software craft. So, quite a lot of people feel inadequate and practice relentlessly to keep their skills sharp, improving visibility. Some are practicing DS/Algo daily while contributing to opensource, improving their GitHub. Boosting productivity, driving up revenue.

2. Taught the wrong way - The CS degree way is bad outside of a few key institutions. Everything which is taught sounds too abstract and complex. It's simply not taught well.

The candidates from those key institutions will not take a low ball offer, they'll prefer being unemployed or going into business chasing their dreams. Most are from well off background. This keeps supply low.

3. Greenfield - After working at a software compare, you'll realize that making a new small business around software is not that hard. Afterall, the dumb people who give you requirements are doing it, how difficult can it be? So, after gaining bit some expertise, you are able to set yourself free.
I don't think this is possible in other professions without taking a massive hit in compensation. With my new companies, I am always confident that we'll be 100% successful. I wouldn't have gone to pursue it if I didn't believe success was evident. Lots of smart folks leave for their dream, leaving non-experts in the workforce. So, the money is chasing very small pool of candidates.

4. Robbers - After working at the small business, you'll quickly realize that skill matter much less in business. To make a ton of money, you'll have to be at the right place and at the right time, yea getting to that place does require some skill. You'll find some guys have found a way to convince millions of users to upload their pics on your website and you can sell their data to advertisers making tons of money in the process. This is all new and regulators have no idea what to do, there are no rules - so you rig auction in your favor, yet winning more money from advertisers.

There is potential to do lot more evil in CS.

There are some companies who have built massive leverage. If you do not work for them, you'll simply do not earn much regardless of your skills.

5. Hire more coders what whatever cost - Once startup is growing is growing, you'll find that you need to exploit faster and simplest way to to do is leverage opensource, existing vendors, investment etc... You've no time to reinvent the wheel, the reservoir of nearly infinite free money will not wait for you. So, you'll hire plenty of smart coders at whatever price, you'll use wizard level DS/Algo questions and experience in gluing tons of different opensource technology/vendors etc... If still there are some holes, no problem, contracting someone is the last resort.

Here is the biggest cost alone is time. So, companies are willing to bet as high as possible or risk being unseated.

6. Fast nearly free exponential distribution, creating a copy of iPhone still need some labor, distributing same software to 100K people need much less effort. The software scales faster. We design a system to scale 10x by default. How many other manufacturing plants can scale 10x?

6. Leverage ecosystem - Opensource technology/Vendors/Investors/ and internet is the fastest medium to advertise.

The biggest thing -> Lack of regulation. No, one is verifying your code to make sure that it's not doing anything evil or not extracting something from a user which you didn't have a permit for.