Why should the cut off frequency and the transition bandwidth (BW) be expressed as a fraction of sampling rate?
It is just a normalization so that the apparent sampling frequency is 1 Hz. Say for example you have a 101 tap lowpass filter with with a cutoff of 10 Hz at a sampling frequency of 50 Hz. 

If you don't change the filter coefficients but apply the exact same filter at a sampling rate of 500 Hz then the cutoff will be 100 Hz (not 10 Hz) because the frequencies scale according to the sampling rate.

An important point to note - consider the original filter has a transition width of 10 Hz i.e. from 10 Hz to 20H at the 50 Hz sampling rate. If the filter coefficients remain unchanged when applied in a system with a sampling rate is 500 Hz, the resulting transition width is now from 100Hz - 200 Hz, so the transition width has also increased. This is the reason that if you are trying to design a filter with a narrow transition width at high sampling rates it  requires more filter taps i.e. the impulse response of the filter gets longer in terms of the number of samples.

In most of the filter design software they accept normalized frequency values for the specification - but be careful some use slightly different normalizations e.g. I believe Matlab expects the frequencies to be between 0 and 1 rather than 0 and 0.5, their filter design interface has changed over the years.

Also, if you look at the formulas in the literature for estimation of the FIR filter length for routines like the Parks- McClellan algorithm, you'll see that the frequencies are normalized with respects to the sampling frequency.