Round off in Mathematica Built-in functions [duplicate]

This question already has an answer here:

Is there a way to force Mathematica to use its Built-in functions instead basic functions?

For instance, the Hypergeometric1F1[a,b,x] function has a exponential form when its firsts parameters are integers. Mathematica replace for the exponential form automatically. For example,

Hypergeometric1F1[1,2,x] the Hypergeometric1F1[1,2,x] is transformed in (-1 + E^x)/x. It is a problem if you want to evaluate numerically for x near to 0, because the exponential form has round-off errors.

One way to avoid this problem is using delayed definitions, which evaluates the built-in functions before its replacement. But it is not enough if you want to use this functions in different operations, like differentiating, before evaluate it.

f[x_]:=Hypergeometric[1,2,x]
g[x_]=Hypergeometric[1,2,x]

The map f[x] will use the Build-in function in Mathematica, but g[x] will not. But if you differentiate both functions, you'll get the exponential form:

D[f[x],x]
D[g[x],x]

The result will be

-((-1 + E^x)/x^2) + E^x/x

(1/2)*Hypergeometric1F1[2, 3, x]

I want to force Mathematica use its Hypergeometric Build-in function, but I don't know how.