When the user submits the self-service contribution pages the following hooks are not firing:
hook_civicrm_pre: $objectName == 'Membership' || $objectName == 'Contribution'
hook_civicrm_post: $objectName == 'Membership'
This makes it rather difficult to for example mark a membership with the status 'pending' if the user is paying by cheque.
Or it's always possible that I'm totally misunderstanding things here.