Actually I think I misunderstood your point earlier, but now it is clear.I agree with you that 38-32 leads to a draw but you understood clearly that it was not my point.
The point is to understand as clearly as possible the meaning of a "db draw", an "heurestic draw" and a "sure draw".
AFAIK damy is the only checkers program that propagates the information necessary declare a guaranteed db draw. Some engines simply return 0 for db draw scores, and some like kingsrow use special values, but every one I am aware of simply compare the score values and freely mix db scores with heuristic scores. Schaeffer had a special program that he used to solve checkers, but that was not his chinook engine, it was a separate program. For me the decision to mix values is based on my goals for the program. These are 1) to play as strong a game as possible, and 2) to be useful for the analysis of games. With these goals in mind, I don't usually add infrastructure that I think will adversely affect 1). I have not tested your scheme because I made the assumption that it would have some overhead on all searches, due to additional comparisons to compare nodes, and additional info in hashtables, and I wonder how well it could work? What is your experience using it? I am concerned about scenarios where e.g. you reach a leaf node which is 7x1 or 8x1, you have no db value, so you have to return something to indicate that this is an unproven result, and thus your pv depends on this and you don't show a db result even though it might otherwise be an obvious result. IMO if you have to be very close to the db in terms of every search path simplifying to a db result to get a db search score then this is not very useful. Do you have an example of a 12-piece or 14-piece position where you can return a guaranteed db result? As I said I haven't tried it, so I can only guess how well it works. What is your experience?
-- Ed