The decision is solely up to you in all cases. The "native" object is quick access to your native platform so it's suitable and conveneient for a lot of quick native setters and/or getters.
For more complex behavior, creating a custom helper may be cleaner. However everything you can do in a helper, you could also do directly via the "native" object. There's a lot of flexibility here.
The one technical guidance we would give is that each call from the "native" object is a communication point between your native platform and Capacitor. Thus to keep the communication to a minimum, creating a native helper utility can reduce potentially multiple calls to just one method communication.