Difference between librosa.stft and scipy.signal.stft
Fft scaling (normalization) isn't strictly a part of an fft algorithm although some implementations (like the one you mention) include it.
Since scaling depends on the actual fft algorithm, it makes sense, in my opinion,  to include it in the implementation because it may not be obvious for programmers to decide what scaling factor(s) to use (the usual scaling factors are $1/N$, $2/N$ (an efficient fft algorithm that is using only half the spectrum so we need to multiply by 2 to compensate for the missing energy), $1/sum(wnd)$, $2/sum(wnd)$
As for your second question, I haven't gone over the code (you haven't provided any links to the source), but some (usually minor) calculation differences might exist
given that an fft algorithm can be implemented in a number of ways ( e.g real fft vs complex fft, decimation in frequency vs decimation in time,
radix 2 vs mixed radix etc and combinations thereof)