Most web apps are not very challenging to build until you start thinking about scale. Twitter for 100 users is easy Twitter for 1,000,000 users is much more challenging.
Genuine question - could you please elaborate a bit on that? I sort of know what you mean, but I'm just an amateur. So the problem with large scale is creating algorithms that distribute and balance the workload on the servers, database access speed, optimal cashing, keeping 100% uptime, backup, separating different parts of the application and putting them on different servers, concurrency and solving the problem of simultaneous access to same resources? Anything else?
I think a part of what you forgot is that often you're doing those things you list "in-flight" and on an as-needed basis as the application scales. You don't start out building Twitter for 10,000,000 users, you start out building for 10 users. As the userbase grows, you've got to start thinking about how you're going to change major components of the system safely and without any hiccups.....and in a way that they still work with legacy systems, legacy code, third party code, etc etc
You've also got to make key decisions about whether to scale vertically or horizontally and often there's no one right answer in any of these scenarios. You can re-build today's Twitter in any number of ways to get to the point they are at now. However, the process of getting to today's Twitter would look very very different depending on how much time, money, talent, and other resources you had at each step along the way.
Basically, it's the process or transitions that are very notably difficult, perhaps not the end implementation itself. You've also got to balance these transitions with constraints like time and money. For example, you can't just throw a bunch of AWS instances at an infra problem to buy time, unless you've got the money.
And that's only from an infra perspective. From a product perspective there's a whole slew of things that are needed at scale that you don't necessarily need early on. One example is "how are you going to scale the cost of user/customer support"?. When it's 100 people using your product, you can deal with all the emails, but if it's 10,000,000 people using your product, can you really handle each and every case that comes through? Do you have money to hire a team to handle these cases? Can you build stuff into the product that reduces case-load? etc, etc.
Anyway, I'm rambling now....perhaps someone more experienced than I could share some better insights.