OSL: Can I use a closure as an input to an OSL script?
When OSL is enabled in Blender all shaders are compiled using OSL.
Therefore the Add Shader and Mix Shader are very good examples of what you are looking for.

The next script is the implementation of the Mix Shader node used in Blender 1.

shader node_mix_closure(
    float Fac = 0.5,
    closure color Closure1 = 0,
    closure color Closure2 = 0,
    output closure color Closure = 0)
{
    float t = clamp(Fac, 0.0, 1.0);
    Closure = (1.0 - t) * Closure1 + t * Closure2;
}


BTW I don't see it as abuse of the render system but still be aware that OSL will not allow you to do many operations on a closure


  At present, the only type of closure supported by Open Shading
  Language is the closure color, and the only allowed operations are
  those that let you form a linear combination of closure color’s.
  Additional closure types and operations are reserved for future use.



- closure color:  unary negation
color * closure color: component-wise scaling
closure color * color: component-wise scaling
float * closure color: scaling
closure color * float: scaling
closure color + closure color: component-wise addition


Other operations are not supported. and that said there is just a little room left of things to do, what cannot be done by a set of Add Shader and Mix Shader