Whereas I would agree that the option B is not good at all because it would make most of the potential customers angry, it seems that even though the answer C is far from optimal due to the choice of the wrong storage option, it might be still better than the option A which is not scalable at all (no mentioning of autoscaling groups, load balancers etc.) and thus can fail under high demand. Option C involves S3 which is inherently scalable and should not fail the same way even though it will cost significantly more than D.
If ASGs and LBs are used as a part of option A, the scalability issue may be resolved but then the cost of this option might quickly overcome that of the option C. Thus, it seems that D>C>A>B would a more feasible answer to the question.
This question is not an official AWS question and thus does not have an official AWS answer. I think it can be open for debate as you indicate. However, let me direct you to some nuance that you’ll likely see on other exam questions.
This question is a good example of where we are asked to balance multiple priorities..in this case scalability and cost. We also have to be sure not to let our "Practitioners Curse" influence our choices…meaning we should not build in external assumptions beyond that in the question.
Let’s assume data egress costs are the same between A and C. As you say, Option A will likely cap out at some level of requests but the costs are fixed to whatever size instance we choose. Contrast that with Option C which has no cost cap but no request cap (theoretically). Because we have no cost ceiling inherent in Option C, I would say that violates our cost constraint.
As I say, the answer is debate-able and I’m glad you took the time to think critically on this! It’s this sort of critical thinking that will help you do well on the exam!