There are many different ways to look at game hacking/editing. All in all, it depends on how you want to enjoy the game that you paid for.
1. Hacking is completely wrong and unacceptable. People who hack their games, even for Pokédex completion, are cheaters. This is one extreme. Some people find pleasure in knowing that all their efforts have been completely, 100% legitimate.
2. Hacking is only acceptable for obtaining that which is normally unobtainable, such as event-only Pokémon like Mew and Jirachi. Some people don't want to feel left out because they don't live in a certain city/country and want to be able to enjoy these special Pokémon like others can.
3. Hacking is a substitute for having another Game Boy do trade with. This involves hacking only those Pokémon that are only obtainable on another version of the game. Some people don't have friends who play (such as older players like myself) and want to be able to experience Pokémon as it was supposed to be experienced without buying a second Game Boy, the other game version, and a link cable (a $75+ venture, possibly).
4. Hacking is a way to experience the game on a whole new level. This is the other extreme. Some people, once they beat the standard game, aren't satisfied with the game and want more. So they hack max-gene Pokémon with moves they couldn't possibly know, like Amnesia on a Charizard instead of Swords Dance. This may be for pure pleasure, this may be for strategic analysis. Some people find pleasure in opening up the realm of possibilities and exploring it. If you haven't figured it out, this is where I stand.
Don't let anyone tell you what you can and can't do with your game and your time. If you want to enjoy it, then enjoy it how you want.
As a side note: there are two different kinds of hacks for collecting Pokémon: complete and incomplete.
An incomplete hack is where the species identifier of a Pokémon (the 1 or 2 byte value that identifies what species the Pokémon is) is changed, but nothing else (except the name, possibly), leaving it with stats of the original Pokémon it overrides. For example, if you had a L5 Pidgey and hacked it to become a Mew, you would have a L5 Mew named Pidgey that would know Gust and Sand-Attack and that was still a Normal/Flying type. This does not update your Pokédex (that must be done through a separate hack).
A complete hack is where all the data is modified to create a natural Pokémon. This involves hacking the type data (2 bytes), the name data (11+ bytes), the move data (4 bytes), and possibly assorted data like DVs, nature, shiny status, gender, etc. This also does not update your Pokédex (that must be done through a separate hack). This is the method Nintendo uses at Nintendo Events, because they happen to know where the data values are and what to use (so does any game hacker who has spent 5 minutes on Google).
So technically, if you think hacking is completely wrong, then you should never have a Mew, Jirachi, or whatever else, because they are all just a product of hacking.
PS: Hacking is such an ugly term. C'est la vie...