Question: I'm doing a map-coloring problem with Scheme, and I used minimum remaining values (Select the vertex with the fewest legal colors) and degree heuristics select the vertex that has the largest number of neighbors). If there exists a solution for a certain configuration, will these heuristics ensures that it won't need to backtrack?

Answer: 
Let's do a simple theoretical analysis.

1. [Graph coloring is NP-complete](http://en.wikipedia.org/wiki/Graph_coloring#Computational_complexity) for general graphs (if not asking for a coloring with less than 4 colors). This means there exists no known polynomial time algorithm.
2. Your heuristic is computable in polynomial time.
3. **Assuming you need no backtracking**, then you need to make `n` steps, each of which requires polynomial time (`n` is number of vertices). Thus you can solve the problem in polynomial time.
4. Either you have proven `P=NP` or your assumption is wrong.

I leave it up to you to decide upon which option in point (4) is more plausible.
Heuristics prune the search space, or change the order of the search to make an early termination more likely. This is not the same thing as backtracking.

But it's a related concept.

We prune some spaces because we are confident that the solution does not lie in those branches of the search tree, or change the order because we have some reason to believe that it will be quicker if we look in some subtrees before others.

We also cut ourselves off from backtracking because we are confident that the solution is in the branch of the space we are in now (so that if we don't find it in this subtree, we can declare failure and don't bother).

Both kinds of strategies are ultimately about searching less of the space somehow and getting to the answer (positive or negative) without searching everything.

MRV and the degrees heuristic are about reordering the sub-searches, not about avoiding backtracking. Heuristics can be right and make a short search but that's not the same 
thing as eliminating backtracking (e.g. the "cut" operator in Prolog). When you find what you're looking for, you can declare success, and of course that eliminates further backtracking. But real backtracking elimination means making a decision not to backtrack no matter what, before the search completes.

E.g. if you're doing a depth-first search, and you find what you're looking for by dumb luck without backtracking, we cannot say that dumb luck is a fence operation that eliminates backtracking. :)