Writing a character pattern starting at &3C00 doesn't overwrite the screen, but writing a pattern to &7C00 does, even though the top 16K of memory isn't supposed to be in use.
I'm not sure why this happens. The only way I can test further would be to remove the top 16K bank of RAM chips, but I'm not happy about doing that.