Во первых, а где гарантия что вот таким способом Вы не затрете нативную реализацию, а даже если и будете проверять, то опять же, нету никакой гарантии что работать они будут одинаково?
Во вторых, Вы молодец, расширили прототип и спокойно пользуетесь, пришел новый разработчик на ваше место, смотрит, а там arr.last() и давай он разбираться где же оно взялось и как работает.
В реальной жизни с таким не сталкивался, может просто повезло, а может из-за того что в любой книге по JavaScript написано "Не расширяйте нативные объекты!"
На мой взгляд, расширять нативные объекты можно только в случае полифилов.