In my view, the CLI should aim at minimalism, since a human being is scanning it and too much information would be confusing. The MI is intended to be scanned by a program, so we should feel free to cram in whatever might be useful - within reason of course... For this reason, when we found PB needed an extra bit of data which might not be so useful to the CLI user, we would just add it to the MI only. This is a little unsatisfying in implementation, since it means you have
if (ui_out_is_mi_like (uiout))
{
}
scattered through non-interpreter specific code. But this is better than cluttering up the CLI output for stuff that is more interesting to a front-end...