This is allowed, but Shopify doesn’t know about pre-orders, thus will generate an order and a subscription contract as if it wasn’t a pre-order. More precisely:
The order’s fulfillments will be “open” for work
The subscription contract will be created with an initial next_billing_date of checkout_time + 1 month, and active.
As a workaround, you could update the subscription contract and mark it as paused. When the pre-order product ships, you can then update the contract to active and set the next billing date accordingly.