When reading edits on startup, namenode may throw away blocks under construction. This is because the file inode is turned into a "under construction" one, but nothing is done to the last block.
With append/hsync, this is not acceptable because it may drop sync'ed partial blocks. In branch 2 and trunk,
HDFS-1623 (HA) fixed this issue.