I have some concerns about why a receive block is treated as the other blocks. I understand it's utility, but I don't see why receive blocks require pow and why they are not automatically generated by the network once the correspondent send block has been accepted through consensus.
This would reduce the load on the network and improve the efficiency of pruning as there will not be unreceived transaction to keep track of.
To accommodate the changes, the pow for send and change blocks should be computed with respect to the last send or change blocks (ignoring receive blocks as the user does not have anymore control on them).
What do you think about it? What don't I see?