For OEMs, I don't know if there is any best practice. You could do what Lex Li outlines in his comment, modifying both the software and the MIB, as long as you have the kind of OEM deal where you can modify the software. If you don't have that, you probably have no choice but to leave the original MIB untouched, and live with your customers finding out that the product is OEM when they read the MIB. I know my employer sometimes does the latter.
If you are the original manufacturer, you have a choice of what to offer your OEM vendor(s), and this will be mostly up to you.
For the other case, where one company buys out another and takes over their product portfolio, there are (at least) two ways to do it. I would say the first one is more advisable, from an engineering perspective at least. A marketing department might say otherwise.
Leave everything as it is. For example, HP bought Compaq 12 years ago , but if you buy an HP server today, they still implement the old Compaq MIBs under .1.3.6.1.4.1.232 (for example CPQRACK-MIB). Probably, it was cheaper to maintain and expand cpq:s extensive MIB tree, than to migrate all their products to the HP enterprise subtree. There are numerous other examples.
Migrate everything to your own enterprise tree. You might skip MIBs that are no longer in use (products discontinued etc). Advantage: Less brand confusion. If products are re-named as part of the buyout, this can be reflected in the new MIBs without violating any RFCs.
This approach has the distinct disadvantage of invalidating any existing management solutions designed around the old MIBs. For this reason alone, I would advise against this approach. Nevertheless, it has probably been done.