No. A standard is just a set of rules. If you look at ERC20 for instance, it has a transfer function. If you implement the standard it should accept an address and a value. The address you pass in should get the amount of tokens based on the value you pass along. If you want to comply to the standard, you implement it that way. But, you don't have to. Nor is there any real way to enforce it. That's the choice of the implementor.
Having a reference implementation is sort of like a template, where you can make your own changes if you require so. Reference implementations take away some of the ambiguity a standard can have. (There is some in ERC20 that have caused a lot of issues to third parties that build services around them)
No. A standard is just a set of rules. If you look at ERC20 for instance, it has a transfer function. If you implement the standard it should accept an address and a value. The address you pass in should get the amount of tokens based on the value you pass along. If you want to comply to the standard, you implement it that way. But, you don't have to. Nor is there any real way to enforce it. That's the choice of the implementor. Having a reference implementation is sort of like a template, where you can make your own changes if you require so. Reference implementations take away some of the ambiguity a standard can have. (There is some in ERC20 that have caused a lot of issues to third parties that build services around them)