never...
If you have logic that is not directly related to supporting the drawing of controls (html or otherwise) and you think has a remote chance of being used elsewhere, stick that logic in classes in a separate assembly.
Then, you simply reference that dll in your ASP.NET project. If at some point in the future, you want that logic available via the WCF service, you reference that same assembly and put only the minimum amount of code in the web methods or stubs in the WCF service to call that same set of logic.
On paper, a lot of guys will create architectures that "always" call logic like this via a web service because it looks good in a diagram. They pay no attention to the extra resources to make those logic class via IIS when it isn't necessary or prudent.
Design stuff that is fast and doesn't break. Your end users couldn't care less how your architecture looks on paper.