Most (all) of those are fine, because they have "scope" limited to the class that uses them.I bet using any of them is asking for trouble! In fact, it would probably behoove ME to look up all the keywords in all the libraries I use to make sure I don't use any of them since I'm not using the Arduino editor that would call it to my attention.
#######################################
# Methods and Functions (KEYWORD2)
#######################################
begin KEYWORD2
end KEYWORD2
transfer KEYWORD2
setBitOrder KEYWORD2
setDataMode KEYWORD2
setClockDivider KEYWORD2
In other words, SPI.end() and Serial.end() don't interfere with "end", because they are only actually keywords when used as methods of the particular objects (SPI, Serial)
Similarly, it would be fine to use local variables named "end" (you can think of this problem as a sort of "poster child" for the case against global variables.)
I don't think that the Arduino editor is smart enough to only highlight them in that context, though.