"Fail to plan is plan to fail" - or something like that.
Wireframing is not limited to web-apps; it is pervasively used wherever a high-level overview of any system is needed (it's just called something else).
Functional specs, when you know what is to be done & how to do it would indeed be overkill. A high-level diagram of your intentions would suffice. And it will never be unnecessary. It primarily helps you focus on the scope and intent/target of what you want to do.
The focus should be on preventing wasted effort - finding out half-way through that something essential, that impacts on all other objects, are missing is not what you want to discover. Wireframing in this case would assist in detecting most major functional needs. You would only need to elaborate on functional spec where absolutely needed. Using Photoshop to design your will also be 'wasted effort" - far better to use evolutionary prototyping (RAD technique) with CSS/HTML - but still do pen & paper mock-up of your intentions.