Most of the components I have selected for my project have 2012(mm) footprint while some others have 1608, 3225 and 6432. Does it matter that some components have a different footprint? What is a good design practise?
Generally you will have some choice for many parts- for example, resistors that are not critical in value or dissipating a lot of power can be (inch) 0402, 0603, 0805 or 1206. Ceramic capacitors that are not near the limits of what can be made in a given size may be available in several case sizes.
There are a few other factors- the size of the part affects the overall size of the PCB, which may point towards smaller sizes. You may have reels and reels of parts on the shelf and wish to use them. The price vs. size curve is typically bathtub shaped with the smallest available parts expensive and few suppliers, and the larger parts (which are used less and less in high volume) more expensive and harder to source.
If you are hand soldering the board, (inch) 0402 = metric 01005 and smaller are harder to handle than larger parts. They also come more to a reel.
For high power dissipation resistors, or very high accuracy resistors (especially of higher values) larger sizes are advantageous or necessary.
For capacitors- you may be able to buy the value and voltage you need in an 0603 from one supplier at a high price and with nasty voltage coefficient, but there are a plethora of suppliers making 0805 parts which are better and cheaper.
Assembly wise, it doesn't really matter too much- provided you don't go nuts on making the parts ultra-tiny. Most PCB assembly suppliers can handle the various sizes (though at the very small end some may have older equipment that can't handle really tiny parts well).
As a practical matter, larger resistors are often marked, which can be an advantage. Parts smaller than 0603 (inch) are seldom, if ever, marked.
You may notice that 'glue' logic chips come in quite a wide range of packages, and logic families, just as the market is narrowing due to increased use of CPLDs, FPGAs, and incorporation of similar (very small scale, usually) functionality on processors. So I would suggest being careful about picking packages without multiple sources if the product has a long life cycle. It is not always the largest packages that become discontinued, sometimes the smaller ones don't catch on.
I see a small benefit of sticking to the same default size if you are assemblying yourself (in-house), in that you don't need to constantly check if you have resistor X in form factor Y in your inventory. This way, you can have sufficient quantities of the usual E values in one specific form factor, and simply stick to it.
As Luke Gary said -- it is also a DFM (Design for manufacturing) concern. In my opinion, it's a good idea to keep the footprint sizes in the same ballpark for a few reasons.
First is visual uniformity -- which helps with visual inspection of assembled boards.
Second one is assembling capabilities of your PCS assembler. Many PCB assembly houses got few assembly lines -- for example two lines with older Pick-and-Place machines and one with newer. The older ones might not be able to place the smallest component. So if you design your board with mostly 0805 or 1206 components and sprinkle, here and there, a few 0402's (without the need for them) your board will have to be assembled on the newer machine just because of those few parts. And the assembler might not be happy about this (or simply it might be more expensive). [But this probably only applies to smaller/medium assemblers.]
Third one is BOM (Bill of materials) reduction. If you have, for example, 1uF capacitor in 0603, 0805 and 1206 packages on one board, it would be good idea to check if you really need them in those packages. Maybe you have the space to use 0805 version in all places? Etc. But at this point it becomes a trade-off between size/parameters/assembly cost and price of the component itself.