i don't know if you could dynamically link code or not, but if you can.. whatever benefits you may receive from doing that will be sht compared to the slow down caused by the flat model. like cripsyfried said.. coms are limited to 64 kb, but it can't be anywhere. it has to be loaded into the first 64 kb of the real mode memory.. so you're stuck with loading code into that segment, which you don't even have real access to.. (windows 2000/xp both run in protected mode, the real mode flat model is emulated). when you run in real-mode.. you can only use 16-bit registers.. so all u got is ax, bx, cx, dx.. no fpu/mmx/sse instructions or use of extended registers (eax, ebx, ecx, edx, ebp, esp, etc..).
little fact.. when you run in protected mode, the 64 kb block of memory is used as segment registers for addressing the flat segment of a program in virtual memory. which basically allows you to address as if you had the full 4 gb of memory to yourself (for 32-bit os's) and more importantly.. it lets you multitask. running in real mode, the os can't switch between 1 program and another until the first one finishes execution.