Definitely use decoupling capacitors.
Your uC may seem to work without it, but it increases the chances of hard to debug "weird" things.
Sleeping for a year on two penlights and doing a bit of simple work every hour is a relatively simple task for most microcontrollers.
If you design really carefully you may get 3, maybe even 5 or more years out of your penlights.
Some modern microcontrollers go as low as a few hundred nA while still being able to do useful work. If you really want to hunt the average power consumption down, it becomes an art. Often a higher clock frequency can get things done quicker, and putting your uC to deep sleep sooner, so the average power consumption goes down, but running at 20MHz while waiting in a loop until your ADC has done a conversion is counter productive. You can put it in a low(-er) power mode during such waits, but crystals have long startup times and this may become a noticeable factor.
In the lowest power down mode, usually all clocks are stopped, and a microcontroller can not wake itself anymore. You will need to keep at least some kind of timer running.
You also have to consider all external circuitry carefully. Radio's often have high (peak) currents, and quickly become a dominant factor. For ultra low power, the leakage of even an electrolytic capacitor may be dominant. External IC's, often have a "power down" mode, but may still use too much current when powered down. Current leakage though a BJT used as a power switch may be smaller then though a MOSfet, and both are highly temperature dependent.
And when choosing a microcontroller family you have make a lot of other choices too. Personally I do not touch any microcontroller if it does not run GCC. (Maybe SDCC is acceptable for some projects if the uC is already chosen in a pre-existing project).
For some microcontroller families you need an EUR100 programmer, while for some others you can buy a programmer for a handful of pennies. How important are such costs to you?
Another important factor is how much effort you want to put into a single project? If you're satisfied with a year of battery life, you can choose a controller based on a big family, so you can use similar microcontrollers for all your other projects. If you want to go to 5+ years, you do not have that luxury and must select on low power consumption.
Accurate power measurement is a must during development and this also becomes more cumbersome for very low current measurements.
A simple & cheap way to measure current is to put a shunt resistor in the power line (For example 10k will have 100uA/volt), and then put a silicon diode in parallel. Below approx 200mV leakage through the diode won't be too big (but highly temperature dependent). This gives you a relatively high resolution for low current measurement and at the same time limit voltage drop to 700mV or so when the uC wakes up.
Another method is to use a capacitor instead of a battery as power source, ad a Fet-input opamp as buffer to measure the battery voltage and monitor how fast the battery voltage drops. You can even add a schmitt-trigger to top up your capacitor and count the number of times the capacitor needs to be recharged. Adding a second microcontroller to regulate and count charge pulses is a single afternoon project.
These methods may not give very accurate absolute values for current consumption, but it does make it easy to compare what influence the software and sleep mode have during tests.