f(x)=\frac{x+2}{x^2+3x+2}
People who understand this better than me say it might have something to how javascript handles floats...
Anyway I thought I'd see how +Sage Mathematical Software System could handle this. Here's a Sage cell with an interact that allows you to zoom in on the point (click on evaluate and it should run, it doesn't seem to fit too nice embedded in my blog so here's a link to a standalone Sage cell: http://goo.gl/WtezZ4):
xxxxxxxxxx
f(x) = (x + 2) / (x ^ 2 + 3 * x + 2) # Define the function
discontinuity = -1 # The above function has two discontinuities, this one I don't want to plot
hole = -2 # The hole described by Patrick Honner
def zoom(z=slider(1, 10 ** 7, 1, default=1, label="Zoom")): # These are the options (change 5000 to a higher number to be able to zoom more
xmin = hole - 10/z # Setting lower bound for plot
xmax = min(hole + 10/z, discontinuity - .1) # Setting upper bound for plot only up until the second (messy) discontinuity
p = plot(f, xmin, xmax) # Plot f
p += point([hole, -1], color='red', size=30) # Add a point
show(p)
Here's the same thing in Sage (when setting z=10^7 in the above code):