I think the description for $purpose ("If null, it will try to guess the form") is wrong.

The purpose is given when you want a "specialised" version of a form, for example:

    $this->createObjectForm('user', 'edit');

Provide 'edit' and it would search the `EditUserFormType` instance instead of `UserFormType`.