I see this feature as a must-have on the concept of Build It Fast, Right, and For the Future!
So I would like to start with an example:
Imagine you need to create an action/function that given certain parameters it will return you a text, this action/function can be done in a client-side action/function (does not require server logic), but you need to use the same action in an asynchronous logic which will require a server-side action/function.
With this, at the moment, you need to decide on two approaches, both with pros and cons:
1 - You go for the code reusability approach, which is you implement a server-side action/function, and on the client-side, when needed you make a request to the server using this server-side action/function. So the benefit of this approach is that you have a centralized place to manage this action/function, however, you will perform server requests when they could be avoided.
2 - You go for the more performant approach, which is, you implement a client-side action/function and you implement the same logic on a server-side action/function. The benefit of this one is that you will spare the requests towards the server when you are using the action/function in the client-side logic, but you will always have to maintain the logic in two places.
The idea would be to create a folder in between Client Actions and Server Actions that could be called Hybrid Actions, and these actions could be used both as Client and Server actions, when it was used on the Client side it would behave as a client-side action and in server-side it would run as a server-action.
I know that the code generated under the hoods is different, but it is there where OutSystems brings its maximum value by abstracting the developers of the high code layer :)