Breaking it down into smaller parts with stable interfaces would allow a fork to only touch what it needs to while being able to take the rest as-is. Of course, that would also have significant costs with it; there's a reason Linux doesn't have a stable ABI or API for modules, nor support out of tree changes.