I noticed that the hash message for the hashtag in BIP340 prefixed with SHA256 (tag) || SHA256 (the tag), which also describes the cause

Since this is a context-specific constant that is 64 bytes long and the SHA256 block size is also 64 bytes, optimized implementations are possible (similar to SHA256 itself, but with a modified initial state). Using SHA256 for the same tag name is simple and effective for applications that don’t choose to use optimization.

But I have some confusion

  1. “Improved implementations are possible”: What optimization are we specifically talking about, is it caused by the prefix being the same size as the SHA-256 block? If so, can this conclusion be generalized to all block hashing algorithms? That is, the same prefix size and algorithm block can lead to optimization.
  2. “Using SHA256 for the same tag name is simple and efficient for applications that do not choose to use optimization.”: Does this mean that if the implementation does not intend to adopt optimization, the tag cannot be iterated? That is, the tagged hash will be SHA256 (SHA256 (tag) || msg).