James: Yes & No.
This is all that is needed.
G1 Z-.05 F6. (slow)
X 2.5 (slow)
Y 2.5 (slow)
G0 Z.25 (then rapid move)
X0Y0 (rapid move)
G1 Z-.075 (slow again)
X 2.5 (slow again)
Y 2.5 (slow again)
Yes. modal means the F6. stays in affect until you use an F with a different feedrate. In your example the one F6. is all that is necessary.
No, model means a G-code stays in affect until another complimentary G-code is used. G0, G1, G2, & G3 cancel each other out. If you made a 360 degree circle programming it in quadrants using G2, then all that would be necessary is the first G2. The other 3 blocks needn't have the G2. You can use it, but it isn't necessary. You would need a G1 or G0 to cancel the G2 after completing the circle. Programming straight lines only requires the first G1.
The X0 Y0 needn't be on separate blocks unless they need to be programmed that way to clear a clamp, or if Z0 wasn't the face of the part, and a section was high enough that Z.25 wouldn't clear it when moving to X0Y0.
Same thing for metric versus inches. This should be set by a parameter in the control. You don't need to program another unless changing from one to the other.
Same thing for IPM versus IPR. Parameter in machine controls the one used on start-up. Only need another G-code to change it if going from one to the other.
Same thing for G96/G97. One cancels the other. You can change from G97S1000M3 to a spindle speed of 500 in the same operation by simply programming S500. The G97M3 aren't needed. They are modal. Works the same way for G96.
Not to say that this is how it works on every machine. I am a long ways from having run every machine with every type of control. There could be some flaky ones that require a G1 or G0 on every block, etc. I've never seen one. Doesn't mean they don't exist.