My understanding is that you are correct. I believe that BigDecimal.doubleValue() does the conversion by (wait for it…) converting to a string and parsing with Double.parseDouble(). Real quick:
scala> val y y: java.math.BigDecimal = 2.2250738585072012E-308
scala> y.doubleValue() Hangs
This is one of those “harder than it looks” problems.