I don't know, and have never looked into this, but I'd be surprised if any one source is better or worse than any other. This is because they will all have the same single source of on-the-ground information which is the Clerk of the Course and he (or she) produces advance going reports which say the same thing to everybody.
The issue is not the source of the information, but the time at which it's obtained, relative to the start time of the race. Clearly, the closer you get to the race start time, the more accurate the going report is likely to be.
The daily_races table in Smartform basically reflects the position the afternoon before the race (it's taken from Press Association data which is what most daily newspapers - printed overnight - use for their racecards). Drying ground or rainfall can and do alter things before the race starts, so going reports taken - say - half an hour before post time are going to be more accurate overall.
But the Smartform database doesn't include real-time going updates (I'm not aware of any databases that do although I may be wrong). So if you are looking to use a going description programmatically in a real betting decision, you'll either need to settle for the advance, day-before-racing description in the daily_races table, or enter data manually on the day of racing.