The JAR isn’t being run as a service, it is being run from inside a service, which is a big difference.
Note for readers unfamiliar with JAR files: the JAR isn’t actually being called. Rather, it’s the Java executable that’s called, with the JAR’s name being passed as a parameter. But for the sake of this discussion, let’s just say the JAR is being called directly.
For instance, when you use the External Program task to execute CMD.exe, the CMD executable is not being run as a service, it is simply being called by the Workflow service, using the service’s credentials to run.
That said, I don’t know if Windows allows a Java application (or your specific Java application) to be called from within a service. All services run inside a special Windows Session that cannot access the desktop, but in theory, as long as the application does not attempt to interact with the desktop, it should work… but perhaps there are restrictions that I am not aware of with Java.