Returning inference_data from posterior predictive sampling could be fraught with issues, because PyMC3 uses the same functions (spp and fspp) to predict both in and out of sample.
Or, more accurately, PyMC3 uses these functions to predict in sample, and if you torture the input trace, you can use them to predict out of sample, as well.