Sure you can get better, especially if you limit the number of variables you change over time. Same tools, similar project, good notes ->better estimate. Hot new framework, new domain, new kind of customer ->worse estimate.
Do not agree. It's a skill. You can get good at it. The real problem is that people do not want accurate estimates.