If you're providing the UI for your service in the Carbon admin console itself, which probably means you're extending/enhancing product functionality then yes, you must go down the path of writing OSGi bundles. Example: you're adding a new throttling algorithm which allow users to configure new throttling policies through the admin console which accepts many different parameters.
If you're developing functionality which will be used in a user level application, then you're not suppose to go down the OSGi path. Unless you're enhancing/modifying the platform you don't have to know anything about OSGi. For end users, when configuring the ESB, you don't have to write custom code unless your scenario cannot be configured with the existing mediators. ESB and DSS therefore follows a configuration driven approach (for end users) when you have to develop new services.