No, the domain of U need not be finite. (1) The paper explicitly says that U need not be computable. (2) The model of computation implicit in the paper permits computable functions to have infinite domain (it's basically Turing machines). (3) The way the paper proposes that a computable U should be implemented involves only looking at a finite amount of the information in the argument of U. (Kinda.)
But yes: the paper's model does permit a non-computable decision process. (Neither does it require that U be uncomputable.)
There is a countable infinite of computable functions. (Because there is a countable infinity of programs, because a program is a finite string or something of the kind.) An environment is defined to be a function from sequences of actions to sequences of perceptions, and there are uncountably many (more precisely: continuum-many) of those. So the situation envisaged by the paper is as follows: our agent assigns a nonzero probability to each computable environment; if the sum of those probabilities is less than 1, it also assigns a nonzero probability to some sets (though not necessarily any singleton sets) of other possible environments.
Suppose you get an expression for the expected utility in some situation, and it takes the form of an infinite series: 1 - 1 + 1 - 1 + 1 - 1 + 1 - ... (etc.). Then you might want to say "well, there's no actual expected utility, but we can say that the expected utility is some kind of fuzzy thing taking values between 0 and 1" -- but unless there's some reason why the order of summation you used there is the only possible one, you could rearrange the terms a little (swap terms 2 and 3, terms 6 and 7, etc.) and get 1 + 1 - 1 - 1 + 1 + 1 - 1 - 1 + ... whose partial sums vary between 0 and 2 instead. Or you could rearrange the terms more drastically and get partial sums that become arbitrarily large-and-positive and arbitrarily large-and-negative. Or you could just swap the first two terms, getting a series whose values vary between -1 and +1 instead of between 0 and +1.
Perhaps it's possible to construct some theory of "fuzzy convergence" for series like this when there's a single right order to add up the terms in. But it's far from obvious that you could base any usable sort of decision theory on utilities defined as the sums of such series. In any case, in this instance there's one term for each possible computable environment, and it seems very obvious that there isn't a canonical way to order those, and that different orderings will give substantially different sequences of partial sums.
I was unhappy with having an uncomputable decision process, but I realize now that isn't important - we can approximate it, but only if it exists. The paper is about whether it exists atall.
I've written before about the difficulty of distinguishing values from errors, from algorithms, and from context. Now I have to add to that list: How can we distinguish our utility function from the parameters we use to apply it?
In my recent discussion post, "Rationalists don't care about the future", I showed that exponential time-discounting, plus some assumptions about physics and knowledge, leads to not caring about the future. Many people responded by saying that, if I care about the future, this shows that my utility function does not use exponential time-discounting.
This response assumes that the shape of my time-discounting function is part of my utility function. In other words, the way you time-discount is one of your values.
By contrast, Eliezer wrote an earlier post saying that we should use human values, but without time-discounting. Eliezer is aware that humans appear to use time discounting. Therefore, this implicitly claims that the time-discounting function is not one of our values. It's a parameter for how we implement them.
(Some of the arguments Eliezer used were value-based arguments, suggesting that we can use our values to set the parameters that we use to implement our values... I suspect this recursive approach could introduce bogus solutions, like multiplying both sides of an equation by a variable, or worse; but that would take a longer post to address. I will note that some recursive equations do have unique solutions.)
The program of CEV assumes that a transhuman can use some extrapolated version of values currently used by some humans. If that transhuman has a life expectancy of a billion years, it will likely view time discounting differently. Eliezer's post against time discounting suggests, to me, a God-like view of the universe, in which we eliminate time discounting in the same way (and for the same reasons) that many people want to eliminate space-discounting (not caring about far-away people) in contemporary ethics. This is taking an ethical code that evolved agents have, which is constructed to promote the propagation of those agents' genes, and applying it without reference to any particular set of genes. This is also pretty much what folk-morality says a social moral code is. So the idea that you can apply the same utility function from a radically different context, is inherent in CEV, and is common to much public discourse on ethics which assumes that you can construct a social morality that is based on the morality we find in individual agents.
On the other hand, I have argued that assuming that social ethics and individual ethics are the same, is either merely sloppy thinking, or an evolved (or deliberately constructed) lie. People who believed this would probably subscribe to a social-contract theory of ethics. (This view also has problems, beyond the scope of this post.)
I have one heuristic that I think is pretty good for telling when something is not a value: If it's mathematically wrong, it's an error, not a value. So my inclination is to point out that exponential time-discounting is correct. All other forms of time-discounting lead to inconsistencies. You can time-discount exponentially; or you can not time-discount at all, as Eliezer suggested; or you can be in error.
But my purpose in this post is not to continue the arguments from that other post. It's to point out this additional challenge in isolating what values are. Is your time-discounting function a value, or a value parameter?