I can reproduce the same behavior on my A2500 with Workbench 2.1 and using the built-in AmigaDOS "Ed" command v2.00. The critical bit is the Delete ("d") protection flag. Ed's internal functionality is to delete the file then rewrite it with the modified contents. This operation fails if the "d" bit is cleared. The Execute ("e") protection bit does not matter, only the "d" matters.
Really, if there is a "bug", it's that Ed does not rewrite the file with the same protection bits as before. Instead, it defaults to "rw", which is why you can't edit the file a second time without setting "d" again.
Conclusion: Use 'memacs' instead. It has the same behavior of deleting then rewriting the modified file, but it retains the protection bits from the original file.