@Petr:
Your first example interestingly doesn't crash on my Windows XP machine. It probably crashes on other systems for the reasons already outlined by Cobalt above: your OS has trouble creating a window that small.
"Is this a known bug, if this is a bug", you ask? I wouldn't call it a bug especially since it works as expected on my Windows XP VM, but it definitely doesn't sound like something productive or practical. Why would you have a program screen that small? It looks like malpractice.
For the next "bug" in your original post: You create a screen that's small enough to fit a character, but then you use PRINT, which will create a new line immediately after printing. Then what happens to your expected "A" character? It gets scrolled up. It wouldn't happen if you did this:
Notice the semicolon (;) after the PRINT line? That'll keep the cursor from going down and creating a new blank line.
About _PRINTSTRING, it does work well on text screens but instead of pixel coordinates it takes character positions. It becomes a macro to replace a LOCATE and a PRINT:
Just notice that row/column parameters are swapped (LOCATE takes a row and a column, while _PRINTSTRING takes x, y coordinates).