Think I've got it figured out. The "Type" selection in the GUI actually does a bit more than just set the type. It also assigns the client protocol profile to use. For "Standard", it defaults to the "tcp". For "Perfornace (Layer 4)" it assings the fastl4 profile, and for "Performance (HTTP)" it assigns the "fasthttp" protocol profile to the virtual.
Under the seams, these three types are all really of type POOL, the only difference is the client protocol profile on the virtual.
If you want to use iControl to change the "type" for either of these, you'll make the call for set_type() to either of the types, they all default to TYPE_POOL. And then remove the current client profiles with the VirtualServer.remove_profile() method passing in the existing profiles (or you could use remove_all_profiles()). Then make a call to VirtualServer.add_profile() passing in either "tcp", "fastl4" or "fasthttp".
Sorry this isn't very clear. iControl was really built around the core configuration database. When this method was created, the types were distinct, but somewhere along the way, the three mentioned above merged into the same "type" internally but are still represented differently in the GUI.
Hope this makes some sense. If you need some help with the coding, let me know what language you are using and I'll see what I can do to build some code to simulate the GUI's functionality.
-Joe