You can't free a buffer/object twice in the proposal. After a free, you can't use the pointer any longer.
But it might very well be that this approach is not hard enough for use in e.g. the kernel. It might still be useful for userland applications, though.