Is using SetActive on static gameobjects bad practice?

I am using GameObject.SetActive in order to cull certain objects to be rendered or not rendered based on the player position.

I’m wondering if this is bad practice, ie, should I be using some other feature to stop rendering an object? I am mainly doing this to static objects and I’m not sure if disabling/enabling those objects screws up anything with Unity or slows down performance?

I should add, I’m not really doing this for performance, it’s for esthetic purposes. Ie, from certain angles, specific objects just don’t look right and the game looks better if I just disable those objects.

Statically batched renderers are still culled separately, it’s not quite like it’s a single baked mesh. Static batching produces a single vertex buffer per channel, so it can be rendered in a single drawcall, but with reduced indices after culling.
With that knowledge, I can only assume that it’a fine to disable statically batched renderers.
You’d do best if you profiled your specific situation, with static, dynamic and no batching ( or even srp batches, instancing if viable) but unless you arr dealing with hundreds of ovjects, it might not be worth the effort at all.

Disabling renderers might be cheaper than deactivating entire gameobjects.