I'd say the main reason to implement `append` in GHC would be to handle rules that can't be solved by evaluation (e.g., eliminate append [] on the right, some associativity rule, etc.).
The speed of evaluation shouldn't really be much different as it should be doing the same thing, more or less.
If there is a big performance hit for just straight evaluation, it might be better to work on that part of GHC, which would also benefit other functions, rather than adding more special cased functions.
Cheers,
Iavor