A good rule of thumb, then, is that if it is possible to conduct a within-subjects experiment (with proper counterbalancing) in the time that is available per participant—and you have no serious concerns about carryover effects—this design is probably the best option. If a within-subjects design would be difficult or impossible to carry out, then you should consider a between-subjects design instead.
Even if experimenters start with no serious concerns over carryover effects, it seems this can change over time. This to me feels like the hardest choice, because both have significant limitations. Finding the "best" design is difficult and sometimes hard to understand.