Postgresql: percentile_cont interpolation of values
Because that is the syntax which is available for "ordered set" aggregate functions.  If the ORDER BY were removed, then it would not know what column or expression to calculate the percentile over.  I know what "the median height of a dog" means, and even "the median dog by height" (although that is of questionable utility, especially the continuous version) but what would the "median dog by no specified metric" mean?

We could invent some way of conveying that column-to-be-used information other than ORDER BY, but why do that? There is a machinery for "ordered set" aggregate functions in place, it should be used for the things that fit into it.