Насколько я помню, в оригинале патронус был "doe". Лань - тупой перевод наших ту... в смысле, не всегда правильных переводов. ИМХО, тут очевидно, что раз Джеймс олень, то doe стоит переводить как "самка оленя", то бишь олениха.
Итак, мы имеем. Анимагическая форма Джеймса - олень. Лили любила Джеймса. При сильной любви патронусы могут трансформироваться (а если патронуса вообще не было. очевидно, тот будет изначально в форме, связанной с любимым человеком). Снейп любил Лили. Патронус Снейпа - олениха.
Как можно связать всё это в один ответ?
Варианты в порядке убывания вероятности:
Патронус Лили - олениха.
Анимагическая форма Лили - олениха.
Снейп был мало того, что знал про секретную анимагическую форму Джеймса, он ещё и был извращенцем, ассоциирующим любимую девушку с её вероятной животной ипостасью, причём эту животную форму он нелогично выводил из знаний о животной форме её мужа.
NAD:
Добрая сказка о тех самых нитях, незримых. О волшебстве и магии без палочек. О добре человеческого сердца, чудиках и чудесах. И в финале так тепло, будто душу укутали шарфом с серебряными снежинками.