@Carpetsmoker, thanks for taking the time for trying to get this straight! :)
I'm talking about Insert mode completion. <C-p> does not start at the bottom of the buffer. Both C-p and C-n start from the cursor position, C-p backwards to the previous match (maybe that's what you meant – that C-p starts at the bottom of the buffer part before/above the cursor), C-n forwards to the next one. Backwards seems to make more sense to me, because that's where one has typically just been entering text (one might want to repeat).
I'm talking about Insert mode completion. <C-p> does not start at the bottom of the buffer. Both C-p and C-n start from the cursor position, C-p backwards to the previous match (maybe that's what you meant – that C-p starts at the bottom of the buffer part before/above the cursor), C-n forwards to the next one. Backwards seems to make more sense to me, because that's where one has typically just been entering text (one might want to repeat).