Good questions!

The intepreter does execute code line by line, but jumps from class to instance to method to procedures and all over the place, so it could execute 1000 lines of code between one line and another if the line makes a call.
Though it executes line by line, that's not how the programmer sees it. I suppose everything executes line by line no matter how object/event oriented it is. From a programmer's view, code it executed on events. As the programmer, you enter the code executed when the an object is initialzed in the init() method, the code you want to be continually executed in the doit() method, the code that will handle input in the handleEvent() method, etc.
The reason they compiled to scripts rather than actual code is portability. They wrote interpreters to execute the scripts for many platforms. Thanks to Sierra and FreeSCI, if you make a game with SCI Studio, it will be able to run under MS-DOS, Windows, MacOS, Amiga, AtariST, Linux, Solaris, BSD, the handheld iPaq, and more! You as the game developer will only need to compile it once in SCI Studio, and will be able to use it on all of those platforms with the appropriate interpreter.