Finding elements by ID is fastest option, because it eventually calls document.getElementById(), which is optimized by most browsers.
One can make the same argument about text being changed, same with cssCSS selectors, if you are working on a product that is under development; you can not guarantee that things wontwon't change.
CssCSS selectors/Name are second fastest, then comes XPath, css. CSS selectors are awesome but not as flexible that xpath.
Hope this helpsas XPath.