Its the “usual” way of doing things. If you have separate levels and want to share information between them Game Instance is where to store them.
If you have a massive world (say an entire city with buildings you can walk into) then using Level Streaming is better because you can have a persistent world with parts being loaded / unloaded as needed (think a city like in GTA).
Im using the Game Instance in my current project because I have distinct levels.