Is it better to make multiple small i2c requests or one larger one?
If you count the bytes going forth and back:

W 0x48 0x01, R 0x48 (+ button state back): 4 bytes
W 0x48 0x02, R 0x48 (+ led state at 0x02): another 4 bytes

...to obtain 2 bytes the bus uses 8 bytes. So to obtain 4 bytes, the bus will use 16. Definitely, a single read - 5 bytes - is a better choice!