By all means the most authoritative source is Vim source code.
To generate full list of known commands in runtime:
:put =getcompletion('', 'command')
But note that the list includes both builtin and user-defined commands. As well as some constructs that are only allowed inside script files.
For all the gory details
From :help index:
This file contains a list of all commands for each mode, with a tag and a
short description. The lists are sorted on ASCII value.
From :help function-list:
There are many functions. We will mention them here, grouped by what they
are used for. You can find an alphabetical list [with ':help functions'].