- Theoretically, you're right. When all subcarriers are modulated the (baseband) bandwidth of an OFDM signal is approximately $f_\mathrm{s}/2$, where $f_\mathrm{s}$ is the sampling rate. An ideal rectangular filter before A/D conversion would be needed at the receiver to avoid anti-aliasing. As such a filter cannot be implemented in practice, some subcarriers remain unmodulated to make the OFDM spectrum narrower. This zero padding in frequency domain corresponds to oversampling in time domain.
- An OFDM symbol including guard interval consists of $N_\mathrm{c} + N_\mathrm{G}$ samples each of which has duration $1/f_\mathrm{s}$, where $N_\mathrm{c}$ is the number of subcarriers (equal to IDFT length) and $N_\mathrm{G}$ is the number of guard interval samples. The "oversamplingrate" parameter in the source you referenced seems to be some additional oversampling factor of the transmit signal. What it's needed for, I don't know, because I don't know this software project.
Regarding the terminology of symbols: in OFDM each subcarrier is modulated by a complex value. All subcarriers keep their values during the duration of the OFDM symbol. Sometimes these values are also called symbols because they're usually taken from an QAM alphabet. A subcarrier cannot contain several symbols at a time. To sum it up:
- symbol: Value of a subcarrier
- OFDM symbol (in time domain): entity of all time domain samples that are obtained by taking the IDFT of all subcarriers plus the guard interval.
The OFDM symbol rate is therefore given by
$$ R_\mathrm{s} = \frac{f_\mathrm{s}}{N_\mathrm{c} + N_\mathrm{G}} $$
Note that the number of zero padded subcarriers is irrelevant for the calculation of $R_\mathrm{s}$.