Maybe if you tried reading the code comment in libogc that has been there forever you would see why:
QUOTE said:
// NOTE: we really want to find out if this ever happens
// and take steps to prevent it beforehand (because it will
// clobber memory, among other things). I suggest leaving this in
// even in non-DEBUG mode. Maybe even cause a system halt.
// It is the responsibility of the loader to clear these things,
// but we want to find out if they happen so loaders can be fixed.
There are 2 reasons for crashing:
1) libogc tries to handle an IPC reply leftover from HBC trying to init the network. This has been fixed, but...
2) When IOS sends the reply it reuses ("clobbers") the area of memory that HBC originally used to send the request, possibly the new app is using this memory for something important.
If IOS decides to reply to HBC's orphaned IPC call there is
nothing an app can do to stop it from clobbering random memory, unless it is specifically written to not use the section of memory that HBC uses for IPC transfers (and I can guarantee you Daco isn't that smart).