Reaching this level of compliance involves making your code work as efficiently and naturally in MDI mode as it does (or did) in SDI mode.
Code sections comprising AcEd-registered commands that are invoked directly from those constructs will likely pause for user input, and are more likely susceptible to corruption when multiple sessions are being done. The most common case is to enter a command in one document, prompt for user input, then switch documents and enter the same command in a different document. As long as you are maintaining vital information on a per-open-document basis, your application should function properly. Otherwise, your code should disable document switching.
When it becomes time to look at performance, a lot of heap-resident pointer dereferencing to what were formerly static addresses can bog down program performance. In this case, the alternative would be to maintain a static memory buffer of elements of the current document, which would be scanned in from and written out to the document-specific heap elements.