Generally, “for the foreseeable future” means “until somebody better comes along.” There are probably exceptions (e.g. when a large long-term commitment has been made to a particular player), but in general, the lesser player yields to the better one.
If Johan Rojas is a better option than Marsh, Rojas will win the job - because Marsh isn’t going to be tied up in a large, long-term contract in the next year or two. Marsh won’t be arbitration-eligible until 2025 -his age 27 season. His value will be pretty well-established by then. At the same time, 2025 will be Rojas’ age 24 season (where Marsh was this year). He’ll have some room for additional improvement, but if he hasn’t forced his way into the picture by then (three years removed from a .721 OPS season in AA), he probably won’t.
It’s small sample size (so take this with a large grain of salt), but Marsh’s OPS+ with the Phillies, in 138 plate appearances this season, was 116. That’s quite good enough, for a CF known for his defense. Now, I don’t know if he can maintain that (it is a small sample size), but the flip side of that is that Marsh played this season at age 24, and significant improvements from age 24 to age 26-27 are not uncommon.
Best case here is that Rojas continues to develop and becomes a bona fide major-league CF candidate…and that Marsh is too good to unseat. Worst case is that neither of them is worth a bag of baseballs over the longer haul. Reality is probably somewhere in between.