For your first question, you can overwrite the entire blob and do the same thing, but that wouldn't be very efficient. Append blobs are great for things like logging. When a new event occurs, we just need to add a new record to the end of the blob. This is a much faster and more efficient operation that trying to rewrite the entire blob, especially at scale. Think of 1000's of devices entering new events to a log file! Also, append blobs don't support updating or deleting existing blocks, so we have data integrity.
Your second question is a little more involved. I am not a storage engineer, so I don't have any more information than what Microsoft provides.
Block blobs are optimized for uploading large amounts of data efficiently, basically for write operations. Think copying files from a local source to Azure, file shares, etc. When you do large data writes, it's like you are filling up the storage, from the bottom to the top, like filling a cup with water.
Page blobs are optimized for random read / write operations, like an operating system does on a local hard drive. Unlike with block blobs, reads and writes don't go from the bottom to the top, like filling it with water. They jump around, needing data from here and there, writing data here and there. This is why Azure VMs store their VHDs using page blobs.
Now how they are optimized to support the different storage needs, I don't know. I just know which one to use based on my needs.
Hope this helps!