The main reason why these are separate is because the numpy/scipy version is required on multiple places (as opposed to the other extensions), i.e. name/version tuple, patch files, source URLs, ...