Problem is that on a multi-core system you have to stop all CPUs when Forbid() is called on one of them. As Forbid() is heavily used in AmigaOS likely SMP enabled OS will not see any speed improvement or may even run slower. So, biggest task of getting a performant SMP AmigaOS is replacing most of Forbid() calls in OS with other locking mechanisms. Likely a big task but not undoable.
You cant remove Forbid() in the OS code easily because for example AllocMem() is guaranteed to not break Forbid(). Replacing Forbid() to semaphores can result in unexpected side effects.
But then this is just a performance optimization and is not directly related to multiprocessing.
Another problem is things like SysBase->ThisTask that have to give different values on the different cores but SysBase has to have the same pointer value. Also something I don't see as unsolvable by some clever MMU programming.
It is actually easy with MMU.