There really are two camps on this one, and both are correct.
The first lets the application manage the life of each form/data module. In this scenario, if the main form uses the data module, then it must be created before it can be used. This works fine for small applications, but there is a loading overhead when you get to larger applications with multiple forms...however once the application is loaded then displaying a form is almost instant since its already created in memory. Because each form/resource is already created there also is a large memory hit upon running the application. This method is the default one that Delphi "leads" you too as you add new forms/data modules to the application. If you don't use the datamodule in the OnCreate of the mainform, then it can be lower in the create order as it won't be invoked until after the Application.Run is launched.
The second camp wants to handle the creation AND destruction of each form/data module itself (generally for all forms other than the MainForm). The advantage to this method is that the application will load faster, and consume less memory immediately upon startup. Generally in this scenario, it is the main form (or other forms) which completely manage the life-cycle of each form/data module they use. This method works best for larger applications with many forms.