Roger,
Thank you for providing the script, it makes it much easier to see what's happening here.
I looked over the implementation of the boundary conditions (in StFlow::eval() and Inlet1D::eval()), and it looks like Cantera is solving the problem it intends to solve. The boundary condition for the temperature is a fixed value condition at each inlet. In contrast, the boundary condition for the species equations is a modified zero-flux condition, e.g.
D[k] * W[k]/Wmix * dX[k]/dz = U * (Y_in[k] - Y[k])
for each species k, where D is the mixture-averaged diffusion coefficient, W is the species molecular weight, Wmix is the mixture molecular weight, and U is the axial velocity.
I think that this makes more sense than a fixed value condition. You might argue that for consistency, the boundary condition for the energy equation ought to be handled in the same way, and I would be inclined to agree. However, this mixed formulation is also what's used by Oppdif / Chemkin, so I'd be hesitant to change the formulation used by Cantera.
Regards,
Ray