Good from you that you addressed this multi-touch subject, complete with a nice explanation and source code. One issue I don't agree with however:
This is why there arent any applications on android that allow simultaneous transformation of multiple views in android using multi-touch
(from your pdf)
Actually it is quite possible to perform this: I did it for an app called OneHandSynth, which is an open-source project:http://members.chello.nl/w.boeke/oh_synth/index.html
This contains an on-screen keyboard and many dials, and I wanted to use the keyboard and the dials at the same time. The trick is to use one toplevel ViewGroup, with as children all other views. At ACTION_DOWN or ACTION_POINTER_DOWN you find out what view contains the pointer coordinates, and you store that view's address and the pointer id in an array. During ACTION_MOVE, ACTION_UP and ACTION_POINTER_UP you use the stored address. The events are resent to the view using dispatchTouchEvent(e), after re-assigning the coordinates and the pointer type.
My solution is not very general (e.g. only one level of views), because I only implemented what I needed myself.