I've yet to use a symbolic constant. I'll look into this.
They're awesome! If you have a number that doesn't need to change at runtime, especially if you want to guarantee that it cannot, using them protects against that.
They also make the code way more readable and maintainable. If you change the value of a constant between two projects, you just go to the table and change the value. Even if you use literal constants all the various Host software packages will let you do a search and replace, but that's a lot more work plus you have to be careful to change only the instances of '4' that represent this particular constant. Change one of the other 4's unintentionally and you've broken something you now have to troubleshoot later. Use a data register, and you can change it only one place, but at the risk that something might step on it at runtime.