In addition to what Chet said, I'd also point out that the forthcoming POSIX version has altered this text in the current standard:
string A string to be written to standard output. If the first operand is -n, or if any of the operands contain a <backslash> character, the results are implementation-defined. into: string A string to be written to standard output. If the first operand consists of a '-' followed by one or more characters from the set {'e', 'E', 'n'}, or if any of the operands contain a <backslash> character, the results are implementation-defined. So even if it is technically a posix violation to interpret -e now, sometime later this year (probably, next year, maybe) it will not be. kre