The conclusions I draw, is that you should follow the advice MadProgrammer gives.
To use the pattern of "create/dispose" for UI components.
I checked the source-codes for swing to confirm that pattern is used there, and it is.
Since awt.Graphics is implemented in the jre, we can't check code to be sure.
But if we take MadProgrammer on his word, there should be no issue.
From what I understand, an instance of Graphics only stores the drawing area, drawing location, font, etc type of information. The type of data you'd want to reset anyway when drawing a different type of object.
I suppose you could go for a hybrid solution. I don't know how your tile-system works, but I imagine there are a lot of tiny objects there all drawn with more or less the same settings, right? Well, in that case, you might not need a new instance of Graphics for every single tile.
But again, there is one thing I have heard over any over from some of my peers. Don't optimize prematurely. Optimize when needed instead. A lesson I am still learning myself, but I find it prudent to share it here regardless.