I figured out that enclosing the subscript within a box gives sufficient control for my needs, for example via the following function:
#let SUB(body, size: 100%) = context box[
#set text(size: size*0.8em)
#set par(leading: par.leading*50%)
$body$
]
// Usage:
$ X_SUB(bold(y)\ bold(z)) $
Of course, the specific formatting instructions are varied according to purpose. Thanks for your help!