These on the other hand are probably not bugs.
a) Show_If conditions are on a per-row basis. We don’t know if any particular row will or won’t show that column. It isn’t a good idea to have the CSV export different column structures depending on the content of the data. If the entire column should always be hidden, remove the show-if expression and mark the column as hidden.
b) Right, we used to show the column name. But many app creators use internal column names, and then use the display name or column description to provide a meaningful external name. We “fixed” this as a bug based on feedback from some of our users. I agree the argument could be made that the column name should be used.