Does Drupal Commerce support free orders?
Yes, Drupal Commerce supports free orders thanks to its use of Rules when determining which payment methods should be shown for an order on the checkout form. You can simply add conditions to your payment method rules that require the order total amount to be greater than 0 for a payment method to be shown (and therefore payment to be required). Provided you have not configured the payment method checkout pane to prevent checkout without payment, the customer simply won't see the payment pane and can proceed to the completion page without submitting payment.
The only caveat is in how you structure your checkout completion rules or Rules that react to the "When an order is first paid in full" event. Because you are not collecting payment for the order, no payment transaction will be made. This will prevent the aforementioned Rule from ever being triggered, so any actions you take based on that event may need to be duplicated in a checkout completion rule for free orders.