you are addressing different topics, but i will try to answer them all:
1) Yes, i confirm that the map rendering is done at runtime by the
mapsforge-map library. We do _not_ display prerendered images.
2) So far, we offer different types of map overlays to display
additional data _on top_ of the map (points, ways, polygons, ...).
Currently it is not possible to display the map as an overlay on top of
something else. There is no "underlay" functionality yet. If there is a
need for it, we could probably implement it. Making the map images
(semi)transparent would not be difficult, but require more memory.
3) As mentioned before, the overlay API is for displaying spatial data.
It does not yet support displaying static PNG images (or any other
raster format). Again, if there is a need for it, we can implement it.
As a user of the map library, you would probably have to extend an
abstract base class to implement some details like for example the
directory structure of your images (z/x/y.png or whatever).
4) We are already working hard on a high-level API to adjust the
rendering of the map images at runtime. See issue 31:
http://code.google.com/p/mapsforge/issues/detail?id=31
It will take some more weeks until we can publish it. In the meantime
you may star the issue to express your need for that feature. :-)
5) Overlays are implemented as Threads so that redrawing them (a
potentially long operation) doesn't block any of the other threads. The
concept fits nicely with the upcoming multi-core CPUs on mobile devices.
Having worker threads and assigning them overlays to redraw would be
possible as well, but more complex to implement. If we extend the Thread
class, developers can see the asynchronism from outside.
Best regards,
Thilo