Both these features of the typical RCT almost automatically reduce their external validity. In the real world, not only do beneficiaries sometimes fail to receive the treatment (think about adherence to drug regimens or large scale food distribution) but non-members of program usually receive other forms of treatment, eliminating any form of control group. In fact, the absence of a "clean" control group is often a good thing, as in most rural districts in Africa, communities purposely try and spread out benefits so that each household receives something. Meanwhile, localized RCTs raise the question of whether the results would hold true in different regions and among populations with different characteristics.
In policy research what is needed is a two stage decision tree. First, all studies that pass a minimum internal validity bar are considered (there are more ways to establish causality than an RCT--James Heckman won the Nobel Prize in Economics for his work in non-experimental program evaluation). Then, among those studies that pass the internal validity test, those that have greater external validity would rank higher. We should also appreciate that established programs operating at large scale deserve to be evaluated: for such programs, messy non-experimental methods are the only approach possible. Evaluations of globally influential large-scale programs such as South Africa’s Child Grant or Brasil’s Bolsa Familia stand less of a chance of making the pages of the journals published by the American Economic Association than an RCT on a largely irrelevant topic using U.S. college students as subjects.
If want our best, most creative minds working on problems that can contribute to policy and people, we need to take a stand in defense of external validity.