It Seems Like libmpdec May Be A Better Answer
This is what Python uses, as the C library for the Decimal128 standard.
https://www.bytereef.org/mpdecimal/index.html
Pure C, actively maintained, BSD-2, and thoroughly/meticulously documented implementation of an IEEE specification. It's about 80k of compiled binary footprint, apparently.
The Decimal128 standard is--as the name suggests--128 bits. We have room for that as-is on 64-bit builds, since cells are 256 bits on 64-bit platforms. But Cells on 32-bit platforms are exactly 128 bits, so we'd have to chop the representation down a little (offering maybe more limited significant figures).
What's The Case For It? (ChatGPT sez...)
Exactness of Representation
Decimal fractions like 0.1 and 0.3 are represented exactly.
This eliminates one of the most frustrating sources of confusion in casual programming:
>> 0.1 + 0.2 = 0.3 ; in Rebol today with IEEE float
== false
With libmpdec, you'd get true, because decimal math is exact where humans expect it to be.
User-Friendly Semantics
Trailing zeros are preserved if you want to track precision intent (0.500 ≠ 0.5).
This allows support for operations or formats that infer significance:
>> digits 0.500 ; hypothetical intent-preserving Rebol dialect
== 3
Improved Comparisons (If You Want)
You could offer a standard = that compares only by value (0.5 == 0.50)...
...and a ≈ or equal-sigfigs? that compares both value and digits of significance.
Avoids Cross-Platform Gotchas
Decimal libraries like libmpdec behave identically on all platforms.
Native double may differ slightly across compilers and architectures due to rounding behavior, subnormals, fused multiply-add, etc.
Better Fit for Intentional Programming
Rebol’s design is about precision of intent, not raw machine access.
Supporting a decimal library that preserves intent (like 0.50 meaning “two significant digits”) fits Rebol’s philosophy more than binary floats.
No Accidental Scientific Notation Drift
Binary float math can lead to e.g.:
>> 1e308 * 10
== inf
With libmpdec, you have guardrails and can trap overflows or round gracefully.
Better Interop with Human-Facing Data
When working with money, measurements, logs, etc., people expect base-10 behavior.
Rebol’s goal is to be a glue language. libmpdec speaks the "people number" language.
What Are The Gotchas?
More Complex Internal Representation
You will have to either:
This affects equality, printing, and serialization.
Storage Size and Interop
A decimal! type may be larger than a float! (especially if you want arbitrary precision).
Native C interop will be less clean — you can't just pass it as a double.
You'll Need to Define Canonicalization Behavior
Do you collapse 0.500 and 0.5 for equality?
Do you preserve input formatting for round-trip consistency?
Missing Hardware Acceleration
If you want to interface with e.g. GPU or SIMD code later, decimal types won't fit.
...You Had Me At (0.1 + 0.2 = 0.3)

This is really the issue. I don't feel like we should be exposing people to the concerns of floating point.
Maybe some extension types for doing specialized math (VECTOR! maybe) would use floats, but I don't think just the basic decimal numbers should.
Anyway... I just got to leaning a little more this direction when trying to address issues in equality. If this resolves things there in a real measurable way, I think it may be worth doing.