Are there any techniques other than velocity? What are pros and cons of using those from your experience?
No I don't think additional metrics are useful or accurate. Some stories require minimal code changes, but lots of time doing other things such as testing, talking to customers, gathering requirements, going to meetings with stakeholders, analyzing the problem, etc etc. Most of these tasks cannot be easily quantified or reduced to a simple metric.
Its still useful to represent these things as stories, because a story is really a piece of functionality from the customer's PoV. They don't care if it takes 1 line of code or 1000. But a good team will realize that the assigned story points are not simply a function of the code size, there's lots of other pieces of work that need to be done. The types of work are so varied and different that finding a uniform, quantitative way to measure them is pretty hopeless. That's why story points are used -- They are a qualitative estimate based on the team's experience with similar features in the past and what those cost in terms of story points.