This is quite interesting. There are essentially two issues here, the first is whether trial and error is ever necessary, and the other is uniqueness of solution.
Addressing the first point, I don't think that trail and error should be necessary. I have completed Thursday's and Friday's puzzles without resorting to guessing. (Friday's did take me two hours though.)
I find with the fiendish puzzles you have an initial burst of easy numbers, and then two, perhaps three, little bast***s, before the rest of the grid falls into place.
I have a few ideas as to how this can be proved/disproved using linear algebra. Essentially you have 27 equations in however many unknowns, along with a bunch of constraints. Not really fully formed my thoughts along those lines though.
As for uniqueness of solution, I think this is tied into the first point. I think (guess) that if you follow the logical path to completion then you can only solve the problem in one way, however, it would make sense that if at some point you resort to trial and error, that you could come to another solution. A hypothetical example of this is, say, if the first and third columns started completely blank (not sure if this is possible, but let's assume it is) then upon completion, you could swap them both and should still have a legal solution. Again, it should, in theory be possible to prove/disprove these ideas.
A method which takes pretty much all of the fun out of solving these things (so don't read any further if that bothers you) is to draw up a grid (in Excel say), with a 3 by 3 grid for each entry. (So where the original grid is 9 x 9 the new one is 27 x 27). In each new 3 x 3 grid write the numbers 1 to 9. Now, where you have a clue, highlight the corresponding number in your 3 x 3 section, and delete all the others. Then delete all of the instances of that number in the rows, columns, and 'neighbourhoods'. Do this for all of the clues. Now identify any numbers which are alone in their row, column, or neighbourhood, these must be the numbers which go in those cells, and repeat the process.
(At any given stage you may have to be slightly more tricksy with this, and, for instance, figure out the a certain column in one neighbourhood has to have a 2 in it, say, and so the 2s in the neighbourhoods above and below must be wrong)
I think this is how a programatical method to solve the problems could work. Instead of ruling numbers into any given cell, rule them out of all the others.