My understanding is you can define and route between two OSPF domains. You would need to redistribute between them, as you would normally do for redistribution between dissimilar routing protocols.
The one advantage of doing redistribution between OSPF domains, attributes would redistribute "better" since you're starting with the same routing protocol. The major disadvantage, are the issues normally seen when doing redistribution between different routing protocols. For instance, each OSPF domain would see the other OSPF domain's routes as injected externals.
One major difference between OSPF and BGP is on the issue of the number different domains you're attempting to communicate between. For just two, OSPF could be fine. For more than a couple (especially for thousands), you're really going to want BGP since that's what is was designed for.
The feature of distribution of various domain's routes, those external to your domain's, is also why it's considered an external routing protocol vs. an internal routing protocol used within your domain. (Note: BGP used internally is known as IBGP for internal BGP, and rules of usage differ from using it externally, as known as EBGP.)