Cancel invoice will create an extra cancellation document, this is correct system behavior.
The reason why u didnt see inventory came back is because the original invoice is converted from a delivery, which means the inventory transaction is not on invoice at all. To make inventory back, after u can cancel the invoice, u will need to cancel the delivery too.
Frank