imo use of core tokens for other purposes is an anti-pattern
[the source text is not just for you today, it is for you in six months and, perhaps for others who – at first reading, prefer disambiguity]
Agree on the struct field case, but not named tuple.
Named tuple is used by people to represent Table rows (e.g. TypedTables.jl) and it should allow arbitrary key. As such (start = 1, end = 2) is much easier to read than NamedTuple{Tuple([:start, :end])}([1,2])