Hello,
It's worth quickly noting that this forum is a pre-sales forum so only staff can approve posts in it and make direct replies. If you would like, I can move this into our feedback area which will receive more attention from the community.
In a nutshell, IP.Board is PHP 5 OOP utilizing a front controller system with an underlying registry to service database connections, incoming variables, viewing member data and caches. The controller files are responsible for collecting content and then pushing it to the display later where HTML logic and special tags format the data.
The display controller is abstracted so you can write your own handler for different formats. IP.Board ships with a handler for HTML and XML but you can just as easily write a layer that handles WAP or anything else you need.
As for coding advantages, well, that's a very good question. IP.Board 3 is a brand new framework written from the ground up. And it is important to note that it is a framework that you can use. The forums are effectively just an application inside the framework. As is the Blog, Gallery and Calendar, etc. What this means is that you can utilize this power when writing your own applications. There is almost no need to make hacks or edit code. There are integration points in almost every area; searching, sessions, member sync, etc. it's all there for your use.
We have good and solid database abstraction, good real re-useable classes for common tasks (managing XML, importing skins, etc). We have several static classes for text wrangling and member management. I could go on.
There is also a hook system that allows you to insert code in almost every IF and FOREACH block within the default templates. You can also override the basic controller classes very easily.
Put short, IP.Board is not a procedural mess of code that requires open heart surgery to apply basic modifications.
$newMember = IPSMember::create( $data );
IPSMember::load( $memberID, 'all' );
$member = IPSMember::buildDisplayData( $member );
$photo = IPSMember::buildProfilePhoto( $member );
IPSMember::save( $memberId, $memberData );