You can probably tokenize the names so they become irrelevant. You can ignore non-functional whitespace, so that code C remains. Maybe one can hash all the training data D such that hash(C) is in hash(D). Some sort of Bloom filter...
The point he's making is against unnecessary rigorization of introductory calculus and I think you are getting a bit too hung up on the "function-based approach". I repeat - introductory calculus. There's lot of time and space to make things more rigorous in a class like Analysis.
When I help students with calculus most of them have no trouble with the ideas but the implementation that they are required to perform. I spend a lot of time getting them to understand the simple particulars. There are ways of teaching calculus that would dispense with some of the more rigorous aspects and make it a much more bearable experience for most.