I am building a DAPP using ERC-721 tokens. I have some additional functionality I am layering on the ERC-721 contract while keeping all the required interfaces intact. Will it still be an ERC-721 token with the additional functionality (some extra state variables, only allow one token per address, etc)
Yes! As long as the added functionality doesn't contradict any of the requirements set out by the ERC721 Standard, then it will still be a valid ERC-721 token.
I don't think adding extra state variables will be a problem at all. However, if you are adding the restriction that only one token be allowed per address, you'll still have to include the relevant transfer functions. So you'll need to either make them throw if the receiving address already has a token, or otherwise find a way to deal with this situation.
But more broadly, adding functionality to your ERC721 token is definitely allowed.