If we wanted to address this we would need 2 features in OutSystems.1. Dynamic typing, which can be as simple as having an untyped "result" variable, the types of which is inferred by what is assigned to it. 2. Functions as parameters to Actions / Functions. This would effectively allows for delegates. It wouldn't be perfectly elegant yet, for that we would need a lambdas, but these 2 features would solve the majority of painful code in OS.
While there's no generalized support for functions and generic types, the new List actions introduced in OutSystems 10 already improve the platform on that area.