I am not sure if there is any research proving it improves your lung function, although I don't see how it would give you anymore oxygen carrying capacity in the long run. In fact, as above, while you are replenishing the red blood cells you have lost (you make the actual fluid volume up quite quickly-within 24 hours I think)you will have less oxygen carrying capacity. So no, I wouldn't give blood just before a half marathon! Will do a search on medline to see if there are any papers to answer your question! The illegal method of improving performance I think is when athletes remove some blood, store it, make up the lost red blood cells and then replace the original blood they took out, which would increase red blood cell count. Dont even think about doing this though!
Finally, I cannot accept any responsibility for any false info, as I am just a lowly med student dontcha know!