The warnings aren't really errors. The tangent to a circle is vertical in two places, and that's the same thing as saying "it has to be broken up into two pieces." Sage will tell you those points can't be evaluated. Many other programs (such as Mac OSX's free Grapher) will
suppress these warnings because there is nothing wrong with the function.
To fix the problem, you can add another command which tells SAGE only to evaluate your circle from -2 to 2. You can still set the xmin and xmax on your graph wherever you want.
The problem with what I wrote is that SAGE is actually trying to plot points at, say, x=2.4. But, as you already know, there is no circle there!
Sorry if I made it more confusing. Didn't want to add a lot of new commands and make it hard to see how they fit together.
In any case, there is nothing wrong with plotting functions one piece at a time, and really there's no way to avoid it. You'll be stuck dealing with these issues every time you work with math. Personally, I like to know what's going on, so that I can handle them myself, just in case the program doesn't want to play along.
For example, suppose you had a program that wasn't very accurate, and even though you SAID "can you please evaluate this from -2 to 2?" because of the way it divided up the interval [-2, 2], the last number it chose for x was 2.000000000001 instead of 2. The square root is negative, here's no circle there, and the program gives you an error.
This would not be your fault, and it would be a mistake to assume you "should not do it this way."
Right?
I mention it because Python is exactly such a language. It tends to give you too many decimal places; some of which are no longer accurate. The way to fix the problem, would be to evaluate the circle from, say
[ -1.9999 to 1.9999]
hahahahahaha, see? Then the graph will be fine, and there will be no errors. Even if it misses by a little bit, it won't pass 2, and everything is fine. Sometimes this is the difference between a working graph and an error!
Hope that helps!