output formatting – MakeBoxes not allowing alternatives defined through variable

I’ve encountered an issue where using Alternatives(...) indirectly through a variable within MakeBoxes does not seem to work, and I was wondering why this might be.

As a simple example, consider the following:

altPattern = 1 | 2 | 3;

f1 /: MakeBoxes(f1(n : (1 | 2 | 3)), TraditionalForm) := With(
  {
    nText = Switch(n
      ,
      1, "one",
      2, "two",
      3, "three"
    )
  },
  RowBox({"Foo", "(", nText, ")"})
)

f2 /: MakeBoxes(f2(n : altPattern), TraditionalForm) := With(
  {
    nText = Switch(n
      ,
      1, "one",
      2, "two",
      3, "three"
    )
  },
  RowBox({"Foo", "(", nText, ")"})
)

As far as I can tell, both f1 and f2 should behave the same, yet Mathematica thinks otherwise:

output

Furthermore, the output from looking at the definition looks fine, with f2 using the altPattern as expected and f1 using the explicit form.

Furthermore, the issue seems to occur only in association with MakeBoxes as the following works fine:

f1(n : (1 | 2 | 3)) := 2 n
f2(n : altPattern) := 2 n

f1(1)  (* 2 *)
f2(2)  (* 2 *)