The declarative subset rule says that if you have multiple parameters to a step/function/whatever in the model, they have to be named parameters. That's causing problems - any pre-existing global library method with multiple parameters (and a closure body - not 100% sure this bombs out when you don't have a closure body, but this is bad enough as is!) will not work outside of a script block. That'd be bad enough on its own, but wait, it gets worse! The sandbox is somehow swallowing the MissingMethodException that's getting thrown when Groovy is looking for someMethod(Map, CpsClosure), resulting in the method never being executed without any error or explanation. That, my friends, is Bad.
So...since I can't figure out how to deal with that swallowed exception for the life of me, I'm intending to remove the named parameters requirement. Yay.