@Dominic Tripodi you wrote "In other window functions the ORDER BY clause does not affect the range of the window." That is incorrect. If your OVER clause has an ORDER BY, then the range has a default. The default range is from the first row in the partition (as defined by the ORDER BY clause) to the current row.
That is if you don't have a RANGE clause, the range defaults to ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. This is documented in the OVER clause documentation at https://learn.microsoft.com/en-us/sql/t-sql/queries/select-over-clause-transact-sql?view=sql-server-ver16
That's why FIRST_*VALUE gets the value in first row in the partition, but LAST_*VALUE gets the value in the current row (as defined by the ORDER BY).
Tom