James,
I saw Eric's mail in the bug-findutils archive where he said:
POSIX says, for -exec ... +:
"If a utility_name or argument string contains the two characters "{}",
but not just the two characters "{}" , it is implementation-defined
whether find replaces those two characters or uses the string without
change."
Implementation-defined is a bear - it means we have to pick one of those
two behaviors, and document it; we are not allowed to pick an alternate
third behavior (rejecting with an error message).
I believe Eric is mistaken about this. POSIX says
"Only a<plus-sign> that immediately follows an argument
containing the two characters "{}" shall punctuate the end of the
primary expression. Other uses of the<plus-sign> shall not be
treated as special."
So according to POSIX,
find . -exec TURNIP{} +
does not have a terminator on the -exec. So you are right to give
an error message, although perhaps you are giving a misleading one.
find plainfile -exec TURNIP{} + \;
is valid and should execute either TURNIP{} or TURNIPplainfile.