Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
find-lisp-object-file-name isn't that simple: it returns C-source only if the DOC file isn't loaded, otherwise it returns a string which is the file name, which can be a C or Lisp file.
This question is similar to: How to strip/normalise indent on paste?. If you believe it’s different, please edit the question, make it clear how it’s different and/or how the answers on that question are not helpful for your problem.
And my point is that C-i cannot be different from TAB, but it can be different from tab. The only downside of binding them differently is that you have to understand how to work with that subtlety.
TAB (not the same thing as tab) is how Ctrl+I is displayed, and it's what modes bind. Same with RET vs return. It's possible but a bit more complicated, see the answer to the duplicate question.