yesodweb/wai — comment on commit bcfa01bb3ca3710f9e0115a3bc95c1ae8886c374
File: conduit/Control/Monad/Trans/Resource.hs line 61
By snoyberg:

Releasing actions can only return (). This could be changed with some type hackery, or by inflating the size of a ReleaseKey, but I don't think it really makes sense to do this. The idea of releasing should be that you don't care what the result of it is.

Likewise, I'm not sure if we should give users the idea that they need to care if the value was already freed. If we're protecting users from double-freeing (I agree with @meteficha here), then returning a value just adds some extra stuff the developer has to ignore.