Well, it is what is done on several tiler architectures, and it generally works just fine. Normally your computations of the position aren't really intertwined with the computation of the other outputs, so dead code elimination does a good job.
Nothing wrong with just following a bunch of recipes. If you do it enough you'll start to internalize common things and techniques, also play around with modifying them and substituting similar ingredients.