Calling DateTime.jd without the second parameter (and relying on the default value) works as expected:

DateTime.jd(Rational(39014323, 16))
=> #

I think the problem may be the 'argc > n' tests in the num2num_with_frac and num2int_with_frac #defines in ext/date/date_core.c. The attached patch changes the tests to 'argc < n'. This makes jd function properly again with more than one argument.