Allowing tabs means "allowing mixed" because TABs are what the are. They are not "4 spaces in the package of one `\t`" they are meant as stops at fixed positions starting from 0 and if you use a Tabstop of 4 and you use indentation of 2 you will have 1 tab and two spaces in front of your text at indent level 3.
Allowing `\t` to let uses choose how their indentation width is, makes probably sense if you only allow tabs and no spaces but not if you allow both (mixed or not). So if you really want to allow tabs the Nim compiler needs to know the tab width intended to be used. This would complicate the parser I guess but would be possible as preprocessor which converts the given tab size to spaces before continuing with compilation. That would be even transparent imho (as for example the columns position would stay the same for error reporting). To me this boils down that there could be a source-code-filter which gets a tab-size and does the correct tab transformation on the source. This way everybody who wants can use tabs in his sources and Nim itself does not need to change anything besides the inclusion of such filter. I guess a PR would maybe go through :)