I don't have a problem with the IP Stack in each Device, unless you considering a generated-and-truncated Stack for each transaction.
That way you create a "soft stack" that doesn't require hard memory.
Kind of like PHP.
I found this informative presentation online. It addresses some specifics that IP over Zigbee is working out. Including some non-IP-related interoperability issues.
Two other minor points, in case they weren't clear.
1. It's certainly not compulsory to connect all of these in-home "things" to the Internet. Some may happily exist only within the in-home network.
2. IPv6 does incorporate a substantial amount of overhead, if all you want to do is turn a light on and off. For that matter, IPv4 does too! Even with header compression techniques, you can't expect Internet connectivity to come for free. But that becomes less of a problem in time, and we've all essentially gotten used to the idea.
I'm not sure whether it's practical yet to put the entire IP stack in each tiny IoT device, or whether one would use aggregation boxes with the IP stack, which gather up the data from, or the commands to, the small devices. The latter is very doable, and has been done for a long time now. But I'm confident that Moore's Law will make the former viable too, before long.
All the pieces are in place. Whether Mobile IP techniques are used, or MANET, or others, it's not like we need drastically new solutions. It's more trying to come up with the right approach, one that scales well, that can create efficient routes, that is secure, and on and on.
One common misunderstanding is to assume that just because IPv6 has a theoretically large address space, that routes to each individual device with an IPv6 address can be created. Not necessarily true. IPv6, like IPv4, depends on route aggregation. So if you have a zillion small devices connected to you home's IPv6 network, the routers leading to your home need to be able to know that all of these in-home "things" can be reached at that location. And the last-step fan-out then occurs only inside the house.
In principle, of course, IP was always designed to be layered on top of local networks of one type or another. So putting IP over 802.15 should certainly be a doable do.
As to the size of packets, no, I think that was misrepresented to you. Every IPv6 link must be capable of carrying packets at least as large as 1280 bytes, without having the IP layer fragment them. Presumably, this includes any Zigbee link. But this doesn't mean that every IPv6 packet must be at least 1280 bytes. Surely, turning on and off a light will not require 1280 bytes.
There was quite a debate over whether or not IP was too big in processing and memory requirements for IoT. Has that gone away?
The Weightless folk--who do not natively support IP--tell me IP still has a mimimum transmission size that is much larger than IoT needs.