Yes, it's possible to reassign these "lost" pins to other functions in you own board design.
If you're looking to make your own board then table 6.1: "PORT Function Multiplexing" in the SAMD21 datasheet (pages 20-22) is really useful, especially if you plan to deviate in any way from the Feather M0/SAMD21 Mini Breakout pin assignments. It describes which peripheral functions, for example external interrupts, ADC, SERCOMs, timers etc.. are assigned to each pin.
Another major advantage is that having the flexibility to multiplex a given peripheral to other alternative pins can greatly simplify the board layout, but it really depends how far you wish to deviate from your "template" board.
The mapping between you the SAMD21G's port pin numbers (PA00, PA01,...) and the Arduino/Feather M0 pins definitions (D0, D1,...) are held in your board's "variant.cpp" file.
Using an external 32.768kHz crystal on PA00 and PA01 like the Arduino Zero, Feather M0, etc..., will save you the trouble of having to mess around with the start-up registers to use another oscillator. I use an Abracon ABS07-32.768KHZ-T crystal with 22pF capacitors.
Regarding the 10 pin interface, I haven't multiplexed it with other functions in my designs, but it's certainly possible. Looking at the datasheet, the external debugger pulls the SWCLK low during reset to put the SAMD21 into debug/programming mode. Otherwise, in the absence of the debugger SWCLK should remain high during this time. Although, if you do decide to multiplex these lines, I imagine you have to be careful which device you connect to them to ensure there's no conflict.
If your design's running short of pins, it's also possible to use the larger 64-pin SAMD21J18A with the Arduino Zero bootloader. The SAMD21J has 14 more IO pins and two extra timers TC6 and TC7. To get it working you just need to add the extra pins to the "variant.cpp" file. Internally though, it's just the same as the SAMD21G18A.