It still amazes me why the Android O.S. is so stingy with memory. Most devices now have 512MB, or 1 GB Ram or more.
On an Android phone, it's very common that a dozen applications or services run concurrently (antivirus, email app, agenda, google play, facebook, system services, etc.). If your device has 512 MB and you want to be able to run up to 16 apps on this device, then you have to restrict the memory to 32 MB to each program. This way, you're sure that two or three programs will not steal all the memory.
For very hungry apps like games, this limitation is mainly for the code as the textures and buffers are not in the Java heap. And when you run a game, it is the front app, so it can get all resources if needed.
The Google's choices make sense but I agree they were frustrating with the old generations of phones and tablets because of the low amount of memory on these devices.
to load a 2 MB HDTV (1920x1080 pixel) still image into a bitmap unless it was reduced in resolution.
8,3 MB in memory (1920x1080x4)
In conclusion: Erel please spend some time on adding automatic recovery to B4A after an OOM error, if indeed possible.
Automatic recovery is not possible. Only you, the programmer of the app, can know what to do in such a situation. And as I said above, even when you catch an OoM error, recovering from it is not always an easy task (imagine that you're loading a game background and you get a OoM; you can only display a message and close the app; you cannot continue with a black background or a very low resolution image).