I don't think it's a mess, controlling the columns works exactly as expected. If you set "Enforce inclusion" only the list of included columns is used during execute. Therefore, changes to the exclude list don't have any effect. If you override one of the included columns then the output changes accordingly. The opposite is true for "Enforce exclusion": the include list is completely ignored, only the exclude list matters. All columns not present in the exclude list will end up in the output table.