I think the example is supposed to be indicative of larger functions that users define into the system. That is, that this was shown with sin/cos was simply an example. Right?
Every real AD system has a primative for sin and cos.
but they do not have every single operation you might ever implement (else what would be the point),
and it is unlikely they will have every operation that involves any approximation.
(Though there is a good chance the might have every named scalar operation involving an approximation that you do, depends how fancy you are.)
I mean I maintain a library of hundreds of custom primatives.
(one of the uses of this post was so i can point to it in response to people saying "why do you need all those primatives if AD can just decompose everything into + and *)