Embperl is going to be an Object from version 1.2b1. This, among other things, make it re-entrant, so that you will be able to call Execute from within an Embperl page. It will also mean that Embperl will come with hooks, which will allow you to alter or change the way Embperl processes code. All embedded Perl code is compiled the first time it is executed and cached for later use. The second time the code is executed, only the precompiled p-code is called.
Every code block is compiled as a single subroutine.
The HTML text between the Perl block is still read from the file. There is only so far that you can go with precompiling until you reach the point of diminishing returns. My guess is that converting dynamic tables and other HTML processing to Perl at this point in Embperl's development would actually slow down operation. With Embperl 1.0 and higher, you can do this. I am using embedded Perl on my site and am curious if I can use it for server side includes.