Puede escribir varios casos, incluso si todos tienen la misma condición.
ORDER BY
CASE @OrderByColumn WHEN 1 THEN Forename END DESC,
CASE @OrderByColumn WHEN 1 THEN Date END,
CASE @OrderByColumn WHEN 1 THEN Location END,
CASE @OrderByColumn WHEN 2 THEN Surname END ASC
En realidad, no especifica una columna para ordenar, sino una expresión.
La declaración del caso devuelve nulo si no se cumple la condición, por lo que en realidad significa:
CASE @OrderByColumn WHEN 1 THEN Forename ELSE NULL END
Entonces, si @OrderByColumn no es 1, la declaración siempre devuelve NULL. Por cierto, eso no lo excluye de la clasificación, pero junta todas esas filas en el resultado, lo que hace que 'Apellido' sea la clasificación decisiva dentro de ese grupo de filas.