evalhf works with eval instead of subs. For example,
sol := [-1.56493598594498962, [x = -0.777194230546894]]
This example is also interesting because it puts minimize(A); into a very long calculation - I couldn't wait until it finishes and interrupted it.
The answer given by NLPSolve is only a local minimum (closest to 0). A better value could be obtained specifying bounds for x,
sol1 := [-1.85107897452703, [x = 4.26099489379575]]
However, if the interval is large and includes several local minimums, the answer given by NLPSolve may be wrong,
sol2 := [-1.85107897452703, [x = 4.26099489606088]]
sol3 := [-1.99735092160169, [x = 17.3382042367515]]
as you can see, evalhf works pretty well here.