You're entering into the "expression" part of programming. What do you want to express?
Three cases are under discussion:
- your method is an action any A can take, or a message any given A can respond to,
- your method is an action the class of A's should respond to, and
- A is a singleton, and your method receives messages for that singleton.
Now ask yourself: what do you intend to express? Is "doSomething" appropriate for the class A? Or is it, rather, just something that every instance of A should be able to do, regardless of its internals? Does "A" represent something which, in the world of your program, should only have 1 instance?
As a practical point, you can't overload static methods, so aside from "expression of intent", you need to be aware of that.
A lot of basic utilities fall in the "static" category, and there's a (small) time penalty for creating a new instance of A, but overall--you're most likely to get it right, and more importantly, the later life of that method will have the least impact on other code, if you can answer the questions above correctly, and thus pick the implementation that matches the intent of the object most closely.