Does this rule apply to the end of the line or just the character following the 'e' or 'f'.
The rule applies to all the characters following the last character of the pre-processor directive to the end of the line.
Which of these is allowed / preferred / not allowed by MISRA C
All three forms are acceptable. Style is not addressed by MISRA C.
In particular, ensure that #else and #endif directives are not followed by any characters other than white-space.
should be read as the following
In particular, ensure that #else and #endif directives are followed by white space.
ISO-C90:6.1 states that preprocessing tokens can be separated by white space which consists of comments, or white-space characters (space, horizontal tab, new-line, vertical tab, and form-feed), or both.