brms supports joint model-based imputation by allowing some response variables to be marked partially missing using the mi() syntax:
xf <- bf(x | mi() ~ z + 1)
yf <- bf(y ~ mi(x) + z + 1)
It would be nice if brmp supported this behavior, and even turned it on by default without requiring the extra mi syntax. I believe we would have to address pyro-ppl/pyro#1106 upstream in Pyro, after which the code generation to support this feature would be a small extension of #42.