You are not the first to point that out. There are several optimisations that could be made along these lines.
A couple of notes:
1) One of the original aims was to avoid using conditional compilation in this way - although this goal already went South as more features and ports were added.
2) Its not just a 16bit ticks definition thing, consider also the case where an 8bit processor is using 16bit tick values. Also, when using a 32bit processor and 32bit ticks you can remove the whole thing.