I ran the following command on my git repository to force all text files to use unix line endings.
git filter-branch --force --tree-filter 'git ls-files | xargs file | sed -n -e "/.*: .*text.*/s/\(.*\): .*/\1/p" | xargs dos2unix' --tag-name-filter cat -- --all
Git commits are immutable, so any time you want to change anything about a given commit, you actually have to create a new commit instead. This includes file content, author date/time, or parent commit. (Thus, if you change the content in one commit, you must create new commits for all those that follow.)
So yes, this is what you should expect, and no, there isn't a way to do the conversion that doesn't produce new commits. This is true for any commands that rewrite history, which includes
rebase as well as
Read more about how this works in the Git Internals - Git Objects section in the Pro Git book.