I wonder if there's any impact in performance to draw a string into a buffer only once and then copy it into the screen every frame or if it's irrelevant.
Should I "cache" the result from g2.drawString or is it fine to call it every render update?
drawString is a bitmap font renderer so it is pretty fast. Rendering to a buffer first might still get you a small speed up but in some situations it might even slow you down (might make you read in more texture data, might require more texture switches,...). When in doubt, profile, but in general I wouldn't advice to create text buffers like that.