call() just converts all args to Tcl list. Is Argument Clinic supports *args
and **kwargs? I'm not sure there is a benefit with using Argument Clinic here.
splitlist() and split() first call PyArg_ParseTuple with one argument, check
the input, and then may call PyArg_ParseTuple with other argument. They need
large refactoring to use Argument Clinic.
getint(), getdouble(), getboolean() first manually unpack arguments tuple, and
then may call PyArg_ParseTuple. Same as above.
setvar()/globalsetvar(), getvar()/globalgetvar(), unsetvar()/globalunsetvar()
shares common code parametrized by flags. I think this is resolvable. But
worse, they can delegates their execution to other thread and should save all
arguments in events queue. And this looks absolutely unsuitable for Argument
Clinic.

(It would have made it easier on me if you'd used the C function names, instead of the names in the module.)
I agree. In retrospect, it's not surprising that things in _tkinter aren't suitable, as it appears to be a shunt for calling things in Tcl.
For what it's worth, Argument Clinic is only intended for functions that use PyArg_ParseTuple or PyArg_ParseTupleOrKeywords to parse their arguments. So something like call is and will forever be unsuitable.
(And reading _tkinter.c this has reminded me why I don't like Tcl ;-)

As mentioned on #20148, removing the "static" from the forward declarations breaks it on GCC. (And, of the two, I think GCC is the one being reasonable here.)
Attached is a patch that should fix the build for tkinter.