Those defines are not there for use by the SQLite library itself or its main client in the project known as the CLI shell. Those defines are there in case library users need to solve problems that would otherwise require more invasive trickery. For example, we have seen name collisions where more than 1 version/copy of the library is used in a single application image. Before you could make believable "SQLITE_xxx is used only # times" assertions, you would have to have obtained and analyzed a great number of client application sources. I dare to surmise that you have not done that, and never will. I do not mean to discourage code critiques with this.