I see that lwIP has some AutoIP (aka IPv4LL, aka RFC 3927) code, but I can't tell if it does anything higher up in the Zeroconf stack, namely mDNS and DNS-SD (with RFC 2782).
So, does lwIP support DNS-SD service discovery? If not, would it be easy to port code from a project like Avahi that does (assuming licensing allows it)?
No, lwIP does not support any part of Zeroconf except AutoIP. I've not looked at Avahi but porting Apples mDNSResponder to lwIP is quite straightforward. There is one bit of nastiness where you have to pull back the pbuf headers to access the IP header to get the sender IP (I think a "proper" method for this is in the works for lwIP but AFAIK it's not in a release yet).
With mDNSResponder you get both service advertisment and discovery.