Use `user-error' for user errors.
The macro expander doesn't need text properties.
Add `uniq-lines'.