Dimension is inherited from Expr, so it can behave exactly as it.
The idea of the current function is to keep only dimensions in an expression to provide basic dimensional analysis, and by definition the later deletes everything which is not a dimension: but this is not very handy since we could have a Symbol in the expression which represents an unknown dimension, and this case the return would be a true Expr.