If my memory serves right, we extracted ```FogFascade``` from ```Fog::ServiceInterface```, so that logic remains in ```Fog::ServiceInterface``` and ```FogFascade``` only manages  interactions with fog. 

this split helped us test service_interface by mocking fog_fascade. I have followed the same pattern.

Your second point is valid. It is possible to use Query here. But i don't have any preference. I normally use query only when i have to search for entities by complex search criteria which involves AND/Or conditions, because it helps me avoid few api calls. In this case, it is pretty straight forward.