deal with @:remove metdata before DCE (closes #2923)
fix exhaustiveness check when there are guards and we need a value (closes #2914)